1

When running a multithreaded application, is it necessary to explicitly specify the maximum number of threads used for the application, or will Linux administrate it by itself? If Linux handles it by itself, I would expect it to be "social", in the sense that the CPU is divided between all users. But maybe I am wrong about this?

4

2 回答 2

4

某些系统具有系统可以处理的最大线程数,但大多数系统只是在此之前耗尽内存[某种]。

如果您的线程“没有做太多”,那么您可能拥有任意数量的线程(尽管处理数千个线程可能会导致运行速度变慢,因为系统会时不时地“遍历”每个线程系统)。如果您的线程在计算等方面很繁重,那么系统中的其他进程为这些进程留出一些空闲的 CPU 容量是“很好的”。

所以,这真的不是一成不变的事情,而是取决于你想要实现的目标。当然,整个系统的用途是——如果您的任务是为 BMW 新车的空气动力学建模,那么使用 99.999% 的 CPU 进行空气动力学计算是非常好的。如果这台机器是一个专用的网络服务器,使用 99.99% 的 CPU 来服务网页也完全没问题。如果是某人的台式机用来浏览网页、写电子邮件和编译代码,那么使用 99.99% 的可用 CPU 来傅里叶变换他们的音乐收藏以检查重复歌曲可能不是一个理想的解决方案。

于 2013-04-25T13:25:41.983 回答
1

程序本身决定了它启动了多少线程,而不是操作系统。至于当一个进程启动太多线程时会发生什么,这取决于调度程序

于 2013-04-25T13:18:54.720 回答