Tag: cpu cores

Java线程和核心数

我刚才有一个关于处理器和线程如何工作的快速问题。 根据我目前的理解,核心一次只能执行1个进程。 但是我们能够生成一个线程池(比方说30),其数量大于我们拥有的核心数量(假设为4)并让它们同时运行。 如果我们只有4个核心,这怎么可能? 我也可以在我的本地计算机上运行我的30线程程序,并继续在我的计算机上执行其他活动,如观看电影或浏览互联网。 我已经读过某个地方发生了线程调度,并且这种错误表明这30个线程由4个内核同时运行。 这是真的,如果是这样,有人可以解释这是如何工作的,并建议一些好的阅读吗? 提前感谢您的帮助。

设置线程池的理想大小

有什么区别 – newSingleThreadExecutor vs newFixedThreadPool(20) 从操作系统和编程的角度来看。 每当我使用newSingleThreadExecutor运行程序时,我的程序运行良好,端到端延迟(第95百分位数)大约需要5ms 。 但是一旦我开始运行我的程序 – newFixedThreadPool(20) 我的程序性能下降,我开始看到端到端延迟为37ms 。 所以现在我试图从架构的角度来理解这里有多少线程意味着什么? 以及如何确定我应该选择的最佳线程数? 如果我使用更多的线程,那会发生什么? 如果有人能用外行语言向我解释这些简单的事情那么这对我来说非常有用。 谢谢您的帮助。 我的机器配置规范 – 我正在从Linux机器运行我的程序 – processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 45 model name : Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz stepping : 7 cpu MHz : 2599.999 cache size : […]