プロセスプール|スレッドプール(同期、非同期、ブロッキング、非ブロッキング)
マルチスレッド:IO集中型
マルチプロセス:計算集約的な
スレッドユニットを実行するCPUであり、プロセスは、リソース単位であります
ソケットのインポート * からスレッド輸入スレッド デフcomunicat(conn)を: ながら真: #は、通信循环 してみてください: データ = conn.recv(1024 ) 場合(データ)== 0でlen:ブレーク 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) #通信 トン=スレッド(対象= comunicat、引数= (CONN)) t.start() の場合 __name__ == ' __main__ ' : sの =スレッド(目標=サーバー、引数=(' 127.0.0.1 '、8081 )) s.start()
ソケットインポート * クライアント = ソケット(AF_INET、SOCK_STREAM) client.connect((' 127.0.0.1 '、8081 )) しばらく真: MSG =入力(" >>:" ).strip() 場合(MSG)でlen == 0:続ける client.send(msg.encode(' UTF-8 ' )) データ = client.recv(1024 ) プリント(data.decode(' UTF-8 '))
サーバーの電源がオンになっているとき、あなたは複数のクライアントを実行しますが、1万クライアントが存在することができます達成し、実行するために複数のスレッドを開きます。サーバは、これは資源の無駄になります