当前位置:
首页 >
Python中的GIL(全局解释器锁)
发布时间:2024/9/30
55
豆豆
生活随笔
收集整理的这篇文章主要介绍了
Python中的GIL(全局解释器锁)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
1. GIL全称Global Interpreter Lock,每个线程在执行的过程都需要先获取GIL,保证同一时刻只有一个线程可以执行代码。
2.GIL的缺点
GIL使Python不能充分利用多核心CPU资源
GIL会使Python代码 不管CPU有多少个核,也不管开了多个线程,但是同一时刻只能在一个核上面执行一个线程
3.Python为什么要有GIL全局解释器锁?
锁的机制: 保证对某一个变量j进行相关的操作的时候,同一时刻只有一个线程来执行
只有拿到锁的线程,才能对变量进行相关的操作
锁从语言上区分:
细粒度的锁: 在代码中主动加的锁
粗粒度的锁: 在整个Python的解释器(cpython)的层面加的锁,所以粗粒度的解释器的锁就是GIL,多核CPU,同一时刻只能执行一个线程 ,在一定程度上保证线程的安全
4. 什么样的程序该使用进程,什么样的程序该使用线程?
计算密集型程序(非常严重的依赖CPU计算): 使用进程
IO密集型程序(查询数据库、请求网络资源、读写文件): 线程、协程
总结
以上是生活随笔为你收集整理的Python中的GIL(全局解释器锁)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Django框架(9.Django中的配
- 下一篇: python中的列表生成式