GIL

在python的原始解释器CPython中存在着GIL(Global Interpreter Lock,全局解释器锁),因此在解释执行python代码时,会产生互斥锁来限制线程对资源的访问,直到解释器遇到I/O操作或者次数达到一定数目时才会释放GIL。所以,CPython的线程库直接封装了系统的原生线程,但CPython整体作为一个进程,同时只会有一个获得GIL的线程在运行,其他线程则处于等待状态。这就造成了即使在多核cpu中,多线程也只是做着分时切换而已。不过multiprocess的出现,已经可以让多进程的python代码编写简化到了类似多线程的程度

解决GIL:

1.能使用进程不用线程
2.高效的代码(多线程执行的任务)使用c,c++来编写

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容