多线程的执行效率一定高于单线程吗?
一、什么是串行?什么是并行? 串行:使命举办列队,一个一个执行; 并行:多个使命齐头并进。 二、单核、多核这两种环境下的并行。 单核环境下的并行:并非真的是多个使命同时举办的,是必要在这使命之间往返切换(即上下文切换)的。 多核环境下的并行:是几核,就能真正做到几核同时执行各自的使命。 三、使命的两大范例。 “计较麋集型”使命: 特点是要举办大量的计较,耗损CPU资源,好比计较圆周率、对视频举办高清解码等等,端赖CPU的运算手段。 这种计较麋集型使命固然也可以用多使命完成,可是使命越多,花在使命切换的时刻就越多,CPU执利用命的服从就越低,以是,要高效地操作CPU,计较麋集型使命同时举办的数目该当便是CPU的焦点数。 “IO麋集型”使命: 涉及到收集、磁盘IO的使命都是IO麋集型使命,这类使命的特点是CPU耗损很少,使命的大部门时刻都在守候IO操纵完成(由于IO(指把内容从硬盘上读到内存的进程,可能是从收集上吸取信息到本机内存的进程)的速率远远低于CPU和内存的速率)。 对付IO麋集型使命,使命越多,CPU服从越高,但也有一个限度。常见的大部门使命都是IO麋集型使命,好比Web应用。 四、看完了上面几点,我们就可以对“并行的执行服从必然会高于串行吗”这个题目作出解答了。 答:并不必然,取决于呆板的核数和使命范例。 1.假如是执行多个计较麋集型使命: ①单核:串行 > 并行。 ②多核:并行 > 串行。 2.假如是执行多个IO麋集型使命: ①单核:并行 > 串行。 ②多核:并行 > 串行。 在多核或多CPU,或支持Hyper-threading的CPU上行使多线程措施计划的甜头是显而易见,即进步了措施的执行吞吐率。 在单CPU或单核的计较机上,行使多线程技能,也可以把历程中认真I/O处理赏罚、人机交互而常被阻塞的部门与麋集计较的部门分隔来执行,编写专门的workhorse线程执行麋集计较,从而进步了措施的执行服从。
(编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |