Python 3.2 - GIL - 好/坏?

标签 python multithreading locking interpreter

Python 3.2 ALPHA is out .

从变更日志看来,GIL 已被完全重写。

几个问题:

  1. 拥有 GIL 是好是坏? (和 为什么)。
  2. 新的 GIL 更好吗?如果有,怎么做?

更新:

我对 Python 还很陌生。所以所有这一切对我来说都是新的,但我至少明白 GIL 与 CPython 的存在是一件大事。

不过,问题是,为什么 CPython 不像 Perl 那样克隆解释器以试图消除对 GIL 的需求?

最佳答案

关于 GIL 糟糕的原因,我见过的最好的解释在这里:

http://www.dabeaz.com/python/GIL.pdf

同一个人在这里有关于新 GIL 的演示:

http://www.dabeaz.com/python/NewGIL.pdf

如果已经完成了这一切,它仍然很糟糕 - 只是没有那么糟糕。多个线程会表现得更好。使用单个 python 应用程序,多核仍然不会为您做任何事情。

关于Python 3.2 - GIL - 好/坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3384385/

相关文章:

C++ 返回值是在 auto var 销毁之前还是之后创建的?

mysql - 锁定池中的资源,同时允许其他人从资源池中订购其他资源

python - Pandas 用特定的阈值计算每一列

python - 从数据框格式的文本列中提取单词

python - 如何修复 Anaconda linter 在 Sublime Text 3 中显示 f 字符串错误?

Python3 Windows 多处理传递套接字到进程

c# - "Synchronous"在 C# 中的函数?

python - 如何使用 tkinter 将小部件添加到标题栏?

java - 为什么调用 join 方法时主线程消失了?

c++ - 在 C++ 中使用 pthreads 时什么时候需要实现锁定?