我编写的除了主线程外新建了4个线程的程序在4核机器上运行时,cpu利用率只能达到百分之五十,用时大概30毫秒。请问这是什么原因?假如我想使用时缩短,cpu利用率更高应该怎么做?如果采用8个线程是不是没有效果?

解决方案 »

  1.   

    试试下面你看CPU上来了否
    while(TRUE){;};
      

  2.   

    cpu利用率高并不是什么好事
    线程应该是操作系统自动分配到不同cpu上去的
    想用时更短应该优化算法
      

  3.   

    50%肯定是浪费。用OpenMP单线程一样所有核全满。
      

  4.   


    使用死循环cpu能占满的。
      

  5.   

    我编写的除了主线程外新建了4个线程的程序在4核机器上运行时,cpu利用率只能达到百分之五十,用时大概30毫秒。请问这是什么原因?假如我想使用时缩短,cpu利用率更高应该怎么做?如果采用8个线程是不是没有效果?我观察我的4核和2核机子的cpu分配不同,4核把每个进程分给均分给4个核,8个线程应该有用。
    但2核不同,一个进程占一个核。增加没有用。