Python GIL 的问题

查看 88|回复 4
作者:jenrey   
如下图所示,Python 使用 GIL 也会出现图中这样的问题,那么 GIL 存在的意义是什么?谢谢
https://imgur.com/a/YCoqzm1

gil, Python, 如下, 问题

liprais   
你的意思是单核 cpu 就不能有多线程了?
iseki   
原始链接呢,原文呢,按理说不该有这样的问题
jenrey
OP
  
@liprais 我感觉图中的意思,只是想表达 Python GIL 在单核 CPU 下进行多线程并发,仍需要给 obj 对象加锁。
而 Python GIL 的诞生 只是为了解决 在多核 CPU 下执行多线程“并行”任务时 Python 的引用计数器不是线程安全 的问题。也就是说 Python GIL 的出现让多核 CPU 下执行多线程 并发 任务时引用计数器是线程安全的。
所以,这个图配得不好,应该加个标题《即使有 Python GIL ,我们仍需给共享对象加锁,无论 CPU 核心数》。
不知道我理解的对不对。
wevsty   
单核时代一样可以多进程,多线程。
线程的调度是由 OS 来决定的,跟你有几个 CPU 核心没有必然的关系。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部