1、多线程在单核和多核CPU上的执行效率问题的讨论
多线程在单cpu中其实也是顺序执行的,不过系统可以帮你切换哪个执行而已,其实并没有快(反而慢)。多个cpu的话就可以在多个cpu中同时执行了。单核CPU时使用多线程,通常是有线程要处于等待状态。而对于普通的进度条更新类的,能够简单控制的(比如:在循环里面手动处理消息)就简单控制,一般不使用线程,这样可以提高程序的性能。并且避免掉不必要的线程同步问题。
2、为什么有时候线程数超过CPU内核数会更快呢?
原因是这种程序的单个线程运算量不足以占满CPU一个内核(比如存在大量IO