进程、线程和协程使用场景

1 伪多线程

1.1 GIL

python的cpython解释器由于有GIL(全局解释锁),CPU 同一时刻同一进程中只有一个线程被执行。

详细GIL参考:https://www.cnblogs.com/linhaifeng/articles/7449853.html

但是,进程没有GIL,也就是说同一个时刻一个核心执行一个进程,多个核心可以执行多个进程。

2 任务分类

2.1 计算密集型

指任务需要大量的使用CPU计算,少量 IO 操作。

2.2 IO密集型

指任务需要大量的进行IO操作,少量的使用CPU计算。

3 结论

可以放弃线程。

对于计算密集型,可以根据CPU的核心数开启相应的进程数量。

对于IO密集型,可以根据CPU的核心数开启相应的进程数量,然在每个进程内开启多个协程任务。

posted @ 2021-04-05 00:17  savagefoo  阅读(692)  评论(0)    收藏  举报