프로세스 풀 | 스레드 풀 (동기, 비동기 차단, 비 차단)
멀티 스레딩 : IO 집약적 인
멀티 프로세스 : 계산 집약적 인
스레드가 장치를 실행하는 CPU이다, 프로세스가 자원 단위
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
에서 소켓 수입 * 에서 스레딩 수입 스레드 데프 comunicat (CONN를) 동안 트루 #이 通信循环 시도 : 데이터 = conn.recv (1024 ) 경우 렌 (데이터) == 0 : 브레이크 conn.send (data.upper ()) 제외 ConnectionResetError : 브레이크 conn.close () 데프 서버 (IP, 포트, 백 로그 = 5 ) : 서버 = 소켓 (AF_INET, SOCK_STREAM) server.bind ((IP, 포트)) server.listen (백 로그) 동안 참 : # 链接循环 CONN, client_addr = server.accept () 인쇄 (client_addr) # 通信 t = 스레드 (목표 = comunicat, 인수의 = (CONN)) t.start () 경우 __name__ == ' __main__ ' : S 나사산 (= 대상 서버의 인수 = ( ' 127.0.0.1 ' , 8081 )) s.start ()
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
발 소켓 수입 * 클라이언트 = 소켓 (AF_INET, SOCK_STREAM) client.connect (( ' 127.0.0.1 ' , 8081 )) 동안 참 : MSG = 입력 ( " >> : " ) .strip () 경우 (MSG) 렌 == 0 : 계속 client.send (msg.encode ( " UTF-8 " )) 데이터 = client.recv (1024 ) 인쇄 (data.decode를 ( " UTF-8 " ))
서버가 켜져있을 때, 당신은 여러 클라이언트를 실행하지만, 만 클라이언트가 할 수 달성, 실행하는 여러 스레드가 열립니다 서버, 이것은 자원의 낭비가 될 것입니다