- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Java 客户端服务器应用程序中观察到一个非常奇怪的问题。我以每秒 80 个请求向服务器发送以下 Runnable 对象。线程池保持池大小等于请求率,即池中大约有 80 个线程。我的笔记本电脑是 intel Core i5-3230M双核(Windows 显示 4 处理器)。奇怪的是 Throughput(jos completed per second) 也是 80。我无法理解这一点。 4 个处理器和 80 个线程如何在一秒钟内完成 100 毫秒的 80 个作业?即:
Processors=4
Request rate=80
Thread pool size=80
Each job service time=100milliseconds.
Throughput=80 How?
我期望吞吐量=40,因为每个处理器应该在 1 秒内大约完成 10 个作业,所以 4 个处理器应该提供吞吐量=40,但它是 80?笔记本电脑规范 link说
Also, the cores can handle up to four simultaneous threads, which improves the performance and resource-utilization of the CPU.
这是否意味着 2 个内核可以同时运行 8 个线程?
public class CpuBoundJob implements Runnable {
public void run() {
long startTime = System.nanoTime();
while ((System.nanoTime() - startTime) < (100)*1000000L) {}
}
}
最佳答案
您编写了运行固定时间的任务,而不是固定的工作量。这意味着无论您拥有多少 CPU,它们都应始终以固定速率完成。你可以让他们睡 100 毫秒。
How 4 processors and 80 threads are completing 80 jobs of 100 milliseconds in one second ?
您的计算机运行的线程比您一直拥有的进程要多得多。操作系统使用调度来停止和开始运行线程(比你看到的要快)来给人一种它们都在同时运行的错觉,但它们不是也不能(如果你想一想就永远不可能)
Also, the cores can handle up to four simultaneous threads, which improves the performance and resource-utilization of the CPU.
这意味着它有两个具有超线程的内核,允许处理器运行多达四个线程而无需上下文切换(如上所述)
Does this means 8 threads can run at the same time b 2 cores?
提到的 i5
有 2 个内核,它支持 4 个线程。
关于Java 线程池吞吐量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34707701/
我是一名优秀的程序员,十分优秀!