【发布时间】:2017-01-14 17:04:51
【问题描述】:
如果当前内核正在调度 60 个线程,它们属于 3 个进程:
A:10 个线程
B:20 个线程
C:30 个线程
而且他们都在做计算(没有磁盘 IO)
C 会比 B 完成更多的工作,而 B 会比 A 完成更多的工作吗?
这对我来说似乎不太公平。如果我是一个不负责任的程序员,我可以产生更多的线程来消耗更多的 CPU 资源。
这与 golang 的关系: 在 go 中,通常 go 调度程序具有 #of-CPU-cores 线程的线程池。如果具有更多线程的进程完成更多工作,为什么这有意义?
【问题讨论】:
标签: multithreading go linux-kernel threadpool