繁体   English   中英

关于Python和C中的多线程的困惑

[英]Confusion about multithreading in Python and C

AFAIK,Python使用import thread (或C#)不会执行“真正的”多线程,这意味着所有线程都在1个CPU内核上运行。

但是在C语言中,在Linux中使用pthreads,您将获得真正的多线程。

这是真的 ?

假设是真的,当您只有1个CPU内核(我在VM中拥有它)时,它们之间有什么区别吗?

我不知道它是如何工作的C#内部,但CPython的(“官方” Python解释器),这是真的:线程是不是真的由于平行GIL Python解释器的其他实现不会遇到此问题(例如C的pthreads库)。 但是,如果您只有1个CPU,则不会有任何区别。 附带说明:如果您需要在CPython中真正的并行性,则可以使用进程而不是线程的multiprocessing模块。

编辑:

另外thread模块已经过时了,您应该考虑使用threading

Python使用一种称为“全局解释器锁”的方法,这意味着多个python线程只能在一个本机线程中运行。

官方文档中有更多文档: https : //wiki.python.org/moin/GlobalInterpreterLock

单核系统上不应有真正的性能差异。 在多核系统上,差异将根据您的工作而有所不同。 (I / O大部分不受GIL的影响)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM