Процесс пул | пул потоков (синхронная, асинхронная блокировка, без блокировки)
Многопоточность: IO-интенсивной
мульти-процесс: Вычислительный интенсивно
потоком является процессором для запуска блока, процесс блок ресурсов
из гнезда импорта * из резьба импорта Thread четкости comunicat (соппы): в то время как True: # 通信循环 попробовать : данные = conn.recv (1024 ) , если Len (данные) == 0: разрыв conn.send (data.upper ()) кроме ConnectionResetError: разрыв conn.Close () Защиты сервер (IP, порт, накопившийся = 5 ): сервер = сокет (AF_INET, SOCK_STREAM) server.bind ((ф, порт)) server.listen (проволочки) в то время как True: # 链接循环 сопп, CLIENT_ADDR = server.accept () печать (CLIENT_ADDR) # 通信 т = Thread (цель = comunicat, Args = (Конн)) t.start () , если __name__ == ' __main__ ' : s = (целевые темы = сервер, Args = ( ' 127.0.0.1 ' , 8081 )) s.start ()
из гнезда импорта * клиент = сокет (AF_INET, SOCK_STREAM) client.connect (( ' 127.0.0.1 ' , 8081 )) , а True: тзд = вход ( " >>: " ) .strip () , если Len (MSG) == 0: продолжить client.send (msg.encode ( ' -8 UTF ' )) данные = client.recv (1024 ) печать (data.decode ( ' UTF-8 ' ))
Достигнутый когда сервер включен, вы можете запустить несколько клиентов, но есть десять тысяч клиента, сервер будет открывать несколько потоков для выполнения, это будет пустой тратой ресурсов