首页 > 代码库 > 区分python进程、线程、携协程
区分python进程、线程、携协程
进程:
概念:对各种资源管理的集合。(线程也是一种资源)
使用场景:CPU密集型运算,调用多进程,通过socket传输数据
线程:
概念:CPU运算的最小单元
使用场景:没有明确的切换条件,只能通过定时器切换
注:python中只允许单线程操作内存中数据,也就是说用python即使开了多个线程实际上也是切换执行,并没有利用CPU的多核性能。究其原因,是python的全局解释器锁(GIL)。个人觉得,设计GIL与python的出发点相符,让程序更加简单,节省程序员时间,所以应用粗粒度的线程锁可以免去程序员对线程锁的繁杂操作。python也并不是设计成解决CPU密集型的计算问题,所以多线程的应用在解决非CPU密集型问题上没什么帮助。python作为胶水语言,可以通过黏合其他语言来解决此类问题。
协程:
概念:用户态的轻量级线程
使用场景:有明确的切换条件
注:事件驱动本质上就是协程的思维。通过I/O多路复用(select、poll、epoll)方式来解决服务器与客户端数据收发的问题。
区分python进程、线程、携协程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。