use*_*331 5 c multithreading pthreads
我试图看到时间切片的效果.它如何消耗大量的时间.实际上,我试图将某项工作划分为多个线程并查看效果.
我有一个两核处理器.所以两个线程可以并行运行.我试图看看我是否有一个由两个线程完成的工作,如果我有相同的工作由t线程完成,每个线程都在完成工作.时间切片在其中发挥了多少作用
由于时间切片是一个耗时的过程,我期待当我使用双线程进程或通过线程进程执行相同的工作时,t线程进程所花费的时间将更多
但是,我发现事实并非如此.我尝试了t = 10.而且它仍然比2线程进程更快.例如.如果我必须进行10,000,000次迭代,使用两个线程进程,我将使用2个线程进行5,000,000次迭代,以便我们总共进行10,000,000次迭代.如果我必须处理10个线程进程,我将让每个线程进行1,000,000次迭代,这样我们总共有10,000,000个.
我期待10个线程进程消耗更多时间.但事实并非如此.代码中是否有任何错误?它看起来很好
有什么建议?
您的机器上有多少个 CPU 核心?关于 CPU 绑定线程的问题是,即使在只有一个线程时设置和调度不存在的线程可能会产生开销,但如果这些线程实际上可以同时执行(而不是仅仅表现为同时执行),那么线程仍然可以产生大于开销成本的收益。
| 归档时间: |
|
| 查看次数: |
363 次 |
| 最近记录: |