一.
看着多线程技术很好,为什么不全都用多线程来解决问题呢?
多线程是有弊端的,在下图当中真的是在同时执行吗?
Windows本身就是一个多任务同时执行的操作系统,谁在负责程序的执行,cpu。Cpu在负责内存中的程序运行。它怎么知道运行的呢?cpu在多个任务间做着快速地切换,特别地快,一眼看过去好像在执行多个程序,实际上一个时间点上只有一个执行路径在执行。
当运行的程序变多时,每一个程序被cpu处理的频率就变慢了,它被处理的机率就变低了,最终执行完毕的时间就延长了。
想想看,能不能提高这个效率呢?很简单,2个cpu就搞定了。2个cpu占主板的空间。多个cpu能达到真正意义上的同时执行。
多线程技术确实能帮助我们解决多个程序需要同时执行的问题。我们学程序是为了解决问题用的,都能解决啥问题?多程序同时执行。但是它有弊端,开多了,效率低。很多线程的话,忙不过来就死机。真正的双核和四核cpu上,最大的好处在哪?内存。
Cpu的切换是随机的,依赖于谁呢?时间片。
快速地同时切换,使得人们看到了多线程技术。