为什么Python 2.7创建用于线程的进程。线程

时间:2018-06-30 15:12:50

标签: python python-multithreading

我在ARM Raspbian linux,Python 2.7.13和amd64 Gentoo linux,Python 2.7.14上运行代码

我有一个功能

import threading
def r() : 
    s = 1
    while True:
        s = s + 1

然后我为此函数创建线程

t = threading.Thread(target=r)
t.start()

然后在htop中,我可以看到生成了另一个进程(具有其自己的PID)!处理。线程文档说:

  

CPython实现细节:在CPython中,由于具有全局解释器锁,因此只有一个线程可以一次执行Python代码(即使某些面向性能的库可能克服了此限制)。如果您希望应用程序更好地利用多核计算机的计算资源,建议您使用多处理。

为什么这种行为与文档不同?

1 个答案:

答案 0 :(得分:5)

这实际上是OS方面的东西:Linux上的进程和线程没有太大区别。 Htop将列出所有单独的线程,就好像它们是进程一样。 See this Unix Stack Exchange question了解更多信息。