我正在使用以下示例尝试&找出python中的多处理模块,但是随后我开始怀疑,当您尝试& amp;在单个核心CPU上的多流行?以下示例到底会发生什么?我认为它会运行,但是在引擎盖下会发生什么?
import os
import random
import sys
import time
import multiprocessing
from multiprocessing import pool
if __name__ == '__main__':
def worker(number):
sleep = random.randrange(1, 10)
time.sleep(sleep)
print("I am Worker {}, I slept for {} seconds".format(number, sleep))
for i in range(5):
t = multiprocessing.Process(target=worker, args=(i,))
t.start()
print("All Processes are queued, let's see when they finish!")
操作系统的功能之一是任务计划。这就是将会发生的事情。您的所有线程都将被添加到调度程序列表中,并会定期检查每个任务,并在短时间内运行每个任务。由于您所有的工人都在睡觉,因此可能只在开始时就检查了他们(系统呼吁睡眠的系统告诉调度程序,任务在一段时间内不需要任何处理)。
>