最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Python协程、IO多路复用的方法

来源:动视网 责编:小采 时间:2020-11-27 14:25:00
文档

Python协程、IO多路复用的方法

Python协程、IO多路复用的方法:协程是一种用户态的请链接线程微线程好处无需线程上下文切换的开销无需原子操作锁定及同步的开销方便切换控制简化编程模型高并发+高扩展性+低成本缺点无法利用多核的资源协程本质上就是一个单线程无需使用多核要结合多进程才能利用多核进行阻塞操作会阻塞掉整
推荐度:
导读Python协程、IO多路复用的方法:协程是一种用户态的请链接线程微线程好处无需线程上下文切换的开销无需原子操作锁定及同步的开销方便切换控制简化编程模型高并发+高扩展性+低成本缺点无法利用多核的资源协程本质上就是一个单线程无需使用多核要结合多进程才能利用多核进行阻塞操作会阻塞掉整

协程

是一种用户态的请链接线程微线程

好处

无需线程上下文切换的开销

无需原子操作锁定及同步的开销

方便切换控制简化编程模型

高并发+高扩展性+低成本

缺点

无法利用多核的资源协程本质上就是一个单线程无需使用多核要结合多进程才能利用多核

进行阻塞操作会阻塞掉整个程序

用yield实现一个协程操作

def consumer(name):
 print("--->starting eating baozi...")
 while True:
 new_baozi = yield
 print("[%s] is eating baozi %s" % (name, new_baozi))
 # time.sleep(1)
 
 
def producer():
 r = con.__next__()
 r = con2.__next__()
 n = 0
 while n < 5:
 n += 1
 con.send(n)
 con2.send(n)
 print("