2024-04-20 09:20:09 发布
网友
我很好奇python中的全局解释器锁是如何工作的。如果我有一个c++应用程序启动一个python脚本的四个独立实例,它们会在不同的内核上并行运行,还是GIL会比启动的单个进程更深入并控制所有python进程,而不管它是由哪个进程产生的?在
GIL只影响单个进程中的线程。实际上,multiprocessing模块是允许Python程序使用多核的threading的替代品。您的场景也很容易允许使用多核。在
multiprocessing
threading
正如Alex Martelli指出的那样,您确实可以通过运行多个进程来避免GIL,我只想补充并指出,GIL是实现(CPython)的一个限制,而不是Python的一个一般限制,可以在没有这个限制的情况下实现Python。Stackless Python浮现在脑海中。在
GIL只影响单个进程中的线程。实际上,
multiprocessing
模块是允许Python程序使用多核的threading
的替代品。您的场景也很容易允许使用多核。在正如Alex Martelli指出的那样,您确实可以通过运行多个进程来避免GIL,我只想补充并指出,GIL是实现(CPython)的一个限制,而不是Python的一个一般限制,可以在没有这个限制的情况下实现Python。Stackless Python浮现在脑海中。在
相关问题 更多 >
编程相关推荐