fre*_*esh 2 concurrency multithreading
我正在尝试了解并发性,为此我一直在编写一些程序。正如我所预料的,我注意到,添加线程时,挂机时间通常会减少。然而,我也注意到,随着运行的并行任务数量的增加,CPU 时间也会增加。
是否是因为当只有一个线程时,编译器在幕后优化代码以便使用多个内核(如果可能)?这是我想到的唯一解释。谁能帮我?
编辑:我使用的机器有多个核心(准确地说是4个)
CPU时间是CPU执行指令所花费的时间。这不包括 I/O 的等待时间。如果您有一个处理器/核心,那么实际时间就是 CPU 时间加上 I/O 时间。
对于多核,CPU 时间以所有核的总 CPU 时间来衡量。因此,如果您有一个具有多个线程的程序,并且这些线程被调度在多个核心上,则 CPU 时间将会增加,但挂起时间可能会减少。如果您有一个依赖 CPU 而不是 I/O 的多线程程序,那么 CPU 时间将接近于实际时间 * 核心数。
| 归档时间: |
|
| 查看次数: |
2779 次 |
| 最近记录: |