-
计算密集型
主要占用
cpu
资源 -
IO密集型
IO
就是input output
, 需要等待的一些任务- 网络请求会有网络延迟
- 和数据库交互需要等待数据库查询事件
- 读写硬盘
-
多进程在处理计算密集型程序的时候比多线程块
由于全局解释器锁的存在, 一个进程下, 只允许一个线程执行
Python
程序的字节码(当前代码文件的二进制表示).简单地说, 创建的10个线程其实在争夺一个
cpu
资源. 但是遇到io
操作会让渡cpu
资源. -
如何绕过GIL?
- 将多线程方法改为多进程
- 将计算密集型任务转移给C扩展.
- 分布式计算引擎
spark
,Apache
- 使用
PyPy
解释器, 工业上几乎没人这么用, 因为PyPy
并不成熟.
Python: 全局解释器锁(GIL)
最新推荐文章于 2024-07-25 18:55:58 发布