单核多处理?

2024-04-26 21:34:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用下面的示例试图找出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!")

Tags: 模块import示例numberfortimesleeprandom
1条回答
网友
1楼 · 发布于 2024-04-26 21:34:29

操作系统的功能之一是任务调度。而这正是会发生的事情。所有的线程都会被添加到调度程序列表中,它会定期检查每个任务,并在短时间内运行每个任务。因为您的工作人员所做的只是睡眠,所以它可能只在开始和结束时检查他们(系统对睡眠的调用告诉调度程序,任务在一段时间内不需要任何处理)。你知道吗

相关问题 更多 >