我使用下面的示例试图找出Python中的多处理模块,但是我开始想,当您在单核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!")
操作系统的功能之一是任务调度。而这正是会发生的事情。所有的线程都会被添加到调度程序列表中,它会定期检查每个任务,并在短时间内运行每个任务。因为您的工作人员所做的只是睡眠,所以它可能只在开始和结束时检查他们(系统对睡眠的调用告诉调度程序,任务在一段时间内不需要任何处理)。你知道吗
相关问题 更多 >
编程相关推荐