这不是一个编程问题,而是我最近遇到的一个问题,我试图理解。
例如,在ls
中运行linux
命令可能需要..... 1秒。
但是当我同时产生几千个ls
命令时,我注意到有些进程没有运行,有点需要很长时间才能运行。
为什么会这样?我们如何解决这个问题?
提前致谢。
更新
我做了ps
,看到有几个ls
命令处于D<
状态。我检查了一下,并了解这是一个不间断的睡眠。那是什么?什么时候会发生?如何避免?
答案 0 :(得分:0)
可以并发执行的进程或线程数受机器内核数量的限制。
如果同时产生数千个进程或线程,内核只能运行&#39; n&#39; (其中n等于可用内核的数量)同时,其中一些将不得不等待安排。
如果要真正同时运行更多进程或线程,则需要增加系统中可用内核的数量(即通过添加CPU,启用超线程(如果可用))。