不是说是伪并行吗,其实还是按顺序执行的,开再多的线程,不应该时间是一样的吗。比如把a加到1000,你开了2个线程和开了一个线程,时间不一样吗
目前的电脑都并不是单CPU的了,所以现在是多个CPU进行处理,多线程可以充分利用当前的多CPU电脑
首先,CPU本身的多核的,可以不同核心分别执行代码
其次,即使是单核的,当你的操作纯粹是内存操作时,确实需要排队,和一个线程没有不一样
但是实际应用中,你不太可能只写一个纯粹内存操作的程序,而是需要跟各种外设打交道
那么当一个线程在等待互联网响应的时候,此时如果能够不阻塞住,而是继续运行其他的逻辑,那当然会大大的提高效率了
其实各种基于事件的应用,各种异步操作,本身就是多线程的一种应用。多线程有很多种用法,不见得必须启动一个线程然后在里面死循环
你这个伪并行,是在单核的CPU看来;因为你单核开多线程,其实也是在一个核上面进行上下文的切换没有意义;
但是如果是多核,开多线程就是真正的并行,好比打扫卫生,你一个人干擦地,擦窗户;和多个人一起同时间干,有的人擦地,有的人擦窗户,肯定效率不一样;前者就是单核,后者就是多核;单核就算进行上下文切换实际是没有任何意义。
很简单, 因为CPU是多核, 你开单线程实际上只用到了CPU一个核心。
如果解决了你的问题, 请采纳, 感谢。
不开多线程,程序是串行执行的,任何时间片下都只有一个CPU在执行
开启多线程,一个时间片下可能有多个CPU在执行,对于大量重复的任务处理非常高效