草庐IT

python - Python 3.1 中的 GIL

有人知道Python3.1中全局解释器锁与C++多线程集成的命运吗 最佳答案 GIL在CPython3.1中仍然存在;UnladenSwallow项目旨在(在许多其他性能提升中)最终删除它,但它仍然是其目标的一种方式,并且首先在2.6上工作,目的是最终移植到3.x,无论x在2.y版本被认为已完成。目前,多处理(而不是线程)仍然是在CPython中使用多核的选择方式(IronPython和Jython也很好,但它们目前不支持Python3,也没有使C++集成变得那么容易;-)。 关于pyt

python - 由于 GIL,多线程 Python 代码中是否不需要锁?

如果您依赖具有全局解释器锁(即CPython)的Python实现并编写多线程代码,那么您真的需要锁吗?如果GIL不允许并行执行多条指令,难道共享数据就不需要保护了吗?对不起,如果这是一个愚蠢的问题,但这是我一直想知道的关于多处理器/核心机器上的Python的问题。同样的事情也适用于任何其他具有GIL的语言实现。 最佳答案 如果你在线程之间共享状态,你仍然需要锁。GIL只在内部保护解释器。您仍然可以在自己的代码中出现不一致的更新。例如:#!/usr/bin/envpythonimportthreadingshared_balance=

ruby - 全局解释器锁 (GIL) 是否已从 2.2 版的 Ruby 中移除?

有人提到它已经(已删除),但我无法在网上找到任何关于它的引用。任何人都可以指出一些可靠的文档吗? 最佳答案 还没有。证明否定可能很棘手,尽管这将是一个相当大的变化,以至于没有在发行说明中提及。也很容易看出GIL相关的api(rb_thread_blocking_function等仍然存在)另外一个posttoruby-core最近询问在GILfreeruby​​上取得了哪些进展,答案是“无” 关于ruby-全局解释器锁(GIL)是否已从2.2版的Ruby中移除?,我们在StackOver

python - CPython 中的全局解释器锁 (GIL) 是什么?

什么是全局解释器锁,为什么会出现问题?从Python中删除GIL引起了很多争论,我想了解为什么这如此重要。我自己从来没有写过编译器和解释器,所以不要吝啬细节,我可能需要他们理解。 最佳答案 Python的GIL旨在序列化从不同线程对解释器内部的访问。在多核系统上,这意味着多线程不能有效地利用多核。(如果GIL没有导致这个问题,大多数人不会关心GIL-它只是因为多核系统的日益普及而被提出来。)如果您想详细了解它,您可以查看thisvideo或查看thissetofslides.可能信息太多,但后来您确实询问了详细信息:-)请注意,Py

python - CPython 中的全局解释器锁 (GIL) 是什么?

什么是全局解释器锁,为什么会出现问题?从Python中删除GIL引起了很多争论,我想了解为什么这如此重要。我自己从来没有写过编译器和解释器,所以不要吝啬细节,我可能需要他们理解。 最佳答案 Python的GIL旨在序列化从不同线程对解释器内部的访问。在多核系统上,这意味着多线程不能有效地利用多核。(如果GIL没有导致这个问题,大多数人不会关心GIL-它只是因为多核系统的日益普及而被提出来。)如果您想详细了解它,您可以查看thisvideo或查看thissetofslides.可能信息太多,但后来您确实询问了详细信息:-)请注意,Py

java - 为什么Java虚拟机中没有GIL?为什么 Python 这么需要一个?

我希望有人能提供一些关于Java虚拟机的根本不同之处的见解,它允许它很好地实现线程而无需全局解释器锁(GIL),而Python需要这样一个邪恶。 最佳答案 Python(语言)不需要GIL(这就是为什么它可以完美地在JVM[Jython]和.NET[IronPython]上实现,并且这些实现可以自由地多线程)。CPython(流行的实现)一直使用GIL来简化编码(尤其是垃圾收集机制的编码)和非线程安全C编码库的集成(过去有很多这样的库;-)。UnladenSwallow项目,以及其他雄心勃勃的目标,plan一个用于Python的无G

java - 为什么Java虚拟机中没有GIL?为什么 Python 这么需要一个?

我希望有人能提供一些关于Java虚拟机的根本不同之处的见解,它允许它很好地实现线程而无需全局解释器锁(GIL),而Python需要这样一个邪恶。 最佳答案 Python(语言)不需要GIL(这就是为什么它可以完美地在JVM[Jython]和.NET[IronPython]上实现,并且这些实现可以自由地多线程)。CPython(流行的实现)一直使用GIL来简化编码(尤其是垃圾收集机制的编码)和非线程安全C编码库的集成(过去有很多这样的库;-)。UnladenSwallow项目,以及其他雄心勃勃的目标,plan一个用于Python的无G