python基础-GIL

python速度慢的原因

动态类型语言,边解释边执行
GIL,无法利用多核CPU并发执行

GIL

同步线程的一种机制,使得任何时刻仅有一个线程在执行。在多核心处理器上,使用 GIL 的解释器也只允许同一时间执行一个线程

为什么有GIL这个东西?

简而言之:python设计初期,为了规避并发问题引入了GIL,现在想去除却去不掉

怎么规避GIL带来的限制?

多线程threading机制依然是有用的,用于IO密集型计算

因为在IO期间,线程会释放GIL,实现CPU和IO并行,因此多线程用于IO密集型计算依然可以大幅提升速度,

但是多线程用于CPU密集型计算时,只会更加拖慢速度。

使用multiprocessing的多进程机制实现并行计算、利用多核CPU优势

为了应对GIL的问题,python提供了multiprocessing

posted @ 2022-08-25 17:10  aleiyoy  阅读(18)  评论(0编辑  收藏  举报