【发布时间】:2020-09-03 14:40:58
【问题描述】:
假设您的计算机上有 4 个物理内核,并且假设没有超线程并且 python 版本是 3.2+(尽管我不确定这些额外信息是否对我的问题重要)。
如果我要打开一个包含 3 个子进程的池,因此每个子进程在执行一些 CPU 绑定任务时占用一个物理内核,并且如果我要从当前进程中打开 3 个线程(占用 4 个内核中的一个)操作系统在哪里运行,如果我要将 CPU 绑定的任务沿着多处理发送到 3 个子进程中的每一个,那么问题是这样的:
从当前管理线程的进程的角度来看(这些线程正在将任务推送到每个子进程并等待结果从这些子进程返回),这些CPU绑定任务是否可以视为I / O 绑定任务(从当前进程的角度来看),因为当前进程实际上并没有做任何工作?等效地,3个线程会进入睡眠状态,而3个子进程正在计算数字并占用3个核心,让最后一个核心闲置吗?
【问题讨论】:
标签: multithreading io multiprocessing cpu