各个逻辑都不懂
协程 实现 socket 并发异步功能
socket.py
# 事情不想好 再做 真不如不做 from gevent import monkey;monkey.patch_all() import socket import gevent sk = socket.socket() sk.bind(('127.0.0.1',9000)) sk.listen() def fuc(conn): while 1: #这边的while和client的while是对应的 #client子线程里有while不加守护线程的话无法退出 msg = conn.recv(1024).decode('utf-8') conn.send(msg.upper().encode('utf-8')) #(xxxx.xx()).encode() 这里写错了 # print(msg) while 1: # 一直得要连接 conn, _ = sk.accept() #这里没每次接受 放出去了 gevent.spawn(fuc,conn) #这里没传参conn 上面没有 # g_l = [] # g.join() #可以识别的 不用join阻塞 就是说
client.py 以及很多 client.py
# from gevent import monkey;monkey.patch_all() #这里不用 import socket import gevent from threading import Thread # sk = socket.socket() # sk.connect(('127.0.0.1', 9000)) # 把连接放外面传输很不稳定 def f(i): sk = socket.socket() sk.connect(('127.0.0.1', 9000)) while 1: sk.send(('bye%s' % i).encode('utf-8')) print(sk.recv(1024)) # g_l = [] for i in range(2): # 500个 while 如果子线程是while的话 不退出 没while则500个数退出 # g = gevent.spawn(f) # g_l.append(g) # gevent.joinall(g_l) Thread(target=f,args=(i,)).start() #不是开协程 是开线程 用start
10行代码:(你记得的才叫代码)
代码 while 1 (对应)不退 conn 1 (参数) 打开500个线程 1 sk.accept1 sk= scoket.socket()1 sk.connent1在函数里 monke1可以识别sk 不用join1 join 什么情况?保证time运行完 gevent 不用1 gevent 也必须join怎么回事?
https://gitee.com/python_stack_20/teaching_plan/issues/IVM5B
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 不到万不得已,千万不要去外包
· C# WebAPI 插件热插拔(持续更新中)
· 会议真的有必要吗?我们产品开发9年了,但从来没开过会
· 【译】我们最喜欢的2024年的 Visual Studio 新功能
· 如何打造一个高并发系统?