多线程为什么能提高执行效率?

1.在多核处理器上,将要执行的任务分成多个可并行执行的线程,就可以提高执行效率。

2.在单核处理器上,多线程只能并发执行,而不是并行,并发原理,其实就是cpu快速来回切换,在特定的时间执行特定的某一个任务,并发执行存在这线程间上下文切换的问题,会消耗一定的时间。如果不考虑阻塞,多线程并发执行其实比单线程执行更加耗费时间,线程过多也会造成cpu负荷过大,并且线程占用内存资源,创建销毁线程也都是需要开销的。

  多线程通过提高cpu利用率来提高效率。数据库访问、磁盘io等操作的速度比cpu执行代码的速度慢很多,单线程环境下,这些操作会阻塞程序的执行,导致cpu空转,等待着上述操作完成,因此对于会产生这些阻塞的程序来说,使用多线程可以避免在等待期间cpu的空转,提高cpu的利用率。

  考虑到多线程存在的一些缺点,现在的网络服务器为了支持大量并发多不是靠多线程或多进程,而采用其他的技术如异步i/o

原文地址:https://www.cnblogs.com/jingpeng77/p/13614560.html