有一程序中有大耗时计算任务,在主线程中计算估计耗时数十小时。
有一8核服务器,打算利用其多核特点,开多线程,提高效率,但是没有明显改善。
在任务分解上没有问题。开了两个专用于计算的线程,但是发现cpu占用率还没有使用没有使用多线程的时候高。
大家能否帮助我分析一下原因。对了开的用于计算的线程优先级订到了最高。

解决方案 »

  1.   

    楼上的,是一个计算任务
    要查询一个大型数据库,
    单个线程的时候,cpu占用率很高,
    分成两个线程,cpu占用率反到低了。
    整体效率,没有明显提高。
    我知道开多线程不会是两个线程就是原来的一半,三个就是原来的三分之一的关系,但是耗费的时间和原单线程相差无几。
    任务分割得没问题,线程践没有资源抢占问题。
    就是想利用服务器多核优势,提高效率。
      

  2.   

    我的意思是,如果用同一个oracle连接,他们之间如果有信息共享的话,速度反而可能快些。