三线程并行,其中两个线程各自独占一核,剩下一个线程随机使用剩余两核的部分资源。如果访问同一个内存地址,就互相争夺;如果各自访问不同地址就互不影响。
如果线程数量超过四,开始出现一核运行多个线程的并发过程。
这是我的假想,希望大神指点。

解决方案 »

  1.   

    你这个想法过于朴素了。什么问题也说明不了。
    首先多线程程序设计,不能说根据cpu有几个核结果就变化,这是完全不靠谱的。应该设计出来的程序,无论几个核结果都正确才行。
    有关知识应该学习下操作系统里讲的p-v操作,同步互斥的原理。
      

  2.   

    我想说明的是 最多支持n线程的CPU跑一个线程用1秒,跑n个线程也是用1秒,线程数小于n,都是用时1秒。如果跑2n个线程,这些线程就没法并行了,用时会变成2秒。并行和并发,除了耗时不同,别的没什么区别,编程时一般不会关心并行和并发的问题。老师讲的时候也是直接就说成了并发。
      

  3.   

    但实际上,是可以并行的。如果有对运行时间要求很高的算法,可以利用多核CPU并行多线程这个能力。