并发编程~~~多线程~~~计算密集型 / IO密集型的效率, 多线程实现socket通信
一 验证计算密集型 / IO密集型的效率
IO密集型:
IO密集型: 单个进程的多线程的并发效率高.
计算密集型:
计算密集型: 多进程的并发并行效率高.
二 多线程实现socket通信
服务器端:
import socket
from threading import Thread
def communicate(conn,addr):
while 1:
try:
from_client_data = conn.recv(1024)
print(f'来自客户端{addr[1]}的消息:{from_client_data.decode("utf-8")}')
to_client_data = input('>>>').strip()
conn.send(to_client_data.encode('utf-8'))
except Exception:
break
conn.close()
def accept():
server = socket.socket()
server.bind(('127.0.0.1',8848))
server.listen()
conn,addr = server.accept()
t = Thread(target=communicate,args=(conn,addr))
t.start()
if __name__ == '__main__':
accept()
在计算机允许范围内,开启的线程进程数量越多越好