【发布时间】:2017-10-15 13:39:15
【问题描述】:
之前我尝试在 python 中使用 threading 模块来创建多个线程。然后我了解了GIL 以及它如何不允许在单台机器上利用多个 CPU 内核。所以现在我正在尝试进行多处理(我并不严格需要单独的线程)。
这是我编写的示例代码,用于查看是否正在创建不同的进程。但从下面的输出中可以看出,我每次都得到相同的进程 ID。所以没有创建多个进程。我错过了什么?
import multiprocessing as mp
import os
def pri():
print(os.getpid())
if __name__=='__main__':
# Checking number of CPU cores
print(mp.cpu_count())
processes=[mp.Process(target=pri()) for x in range(1,4)]
for p in processes:
p.start()
for p in processes:
p.join()
输出:
4
12554
12554
12554
【问题讨论】:
-
删除
target=pri()上的()
标签: python multiprocessing python-multiprocessing