在VS2005中我用多线程计算,请问我创建几个线程比较合理,运行效率最高?我的是4核CPU,线程数与处理器的个数之间存在着什么样的关系?谁能给小弟一个详细的介绍!

解决方案 »

  1.   

    但是在单核CPU中使用多线程(即超线程)时,运行下效率也会提高,这是不是说明多核时用的线程数大于核数也会提高效率啊?
      

  2.   

    多线程,主要是想提高程序的可伸缩性。例如,有很多任务需要并行进行,那么可能需要多线程。
    多线程实际上是一个假象,就是说,因为CPU的时间总是有限的,那么CPU需要频繁地切换,在某个时间执行某个线程的任务。这种情况,如果用的不好,反而增加了CPU的负担,降低了系统性能。
    直接创建Thread对象,并且调用它的Start方法
    使用ThreadPool.QueueUserWorkItem方法
    使用BackgroundWorker
    Parallel.For - for 循环的并行运算  
    Parallel.ForEach - foreach 循环的并行运算  
    Parallel.Invoke - 并行调用多个任务  
    Task - 任务,基于线程池。
    PLINQ - 用于对内存中的数据做并行运算
      

  3.   

    有人说  并行运算,可以使两核cpu,每个核执行不同作业。
    但是这应该是操作系统自己调度的吧。C#可以这么给力?