這篇文章主要講解了“編程開發(fā)中多線程一定比單線程執(zhí)行效率高嗎”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“編程開發(fā)中多線程一定比單線程執(zhí)行效率高嗎”吧!
專業(yè)從事網(wǎng)站制作、成都做網(wǎng)站,高端網(wǎng)站制作設(shè)計,微信小程序定制開發(fā),網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團隊竭力真誠服務(wù),采用H5開發(fā)+CSS3前端渲染技術(shù),響應(yīng)式網(wǎng)站設(shè)計,讓網(wǎng)站在手機、平板、PC、微信下都能呈現(xiàn)。建站過程建立專項小組,與您實時在線互動,隨時提供解決方案,暢聊想法和感受。
一、什么是串行?什么是并行?
串行:任務(wù)進行排隊,一個一個執(zhí)行;
并行:多個任務(wù)齊頭并進。
二、單核、多核這兩種情況下的并行。
單核情況下的并行:并非真的是多個任務(wù)同時進行的,是需要在這任務(wù)之間來回切換(即上下文切換)的。
多核情況下的并行:是幾核,就能真正做到幾核同時執(zhí)行各自的任務(wù)。
三、任務(wù)的兩大類型。
“計算密集型”任務(wù):
特點是要進行大量的計算,消耗CPU資源,比如計算圓周率、對視頻進行高清解碼等等,全靠CPU的運算能力。
這種計算密集型任務(wù)雖然也可以用多任務(wù)完成,但是任務(wù)越多,花在任務(wù)切換的時間就越多,CPU執(zhí)行任務(wù)的效率就越低,所以,要高效地利用CPU,計算密集型任務(wù)同時進行的數(shù)量應(yīng)當?shù)扔贑PU的核心數(shù)。
“IO密集型”任務(wù):
涉及到網(wǎng)絡(luò)、磁盤IO的任務(wù)都是IO密集型任務(wù),這類任務(wù)的特點是CPU消耗很少,任務(wù)的大部分時間都在等待IO操作完成(因為IO(指把內(nèi)容從硬盤上讀到內(nèi)存的過程,或者是從網(wǎng)絡(luò)上接收信息到本機內(nèi)存的過程)的速度遠遠低于CPU和內(nèi)存的速度)。
對于IO密集型任務(wù),任務(wù)越多,CPU效率越高,但也有一個限度。常見的大部分任務(wù)都是IO密集型任務(wù),比如Web應(yīng)用。
四、看完了上面幾點,我們就可以對“并行的執(zhí)行效率一定會高于串行嗎”這個問題作出解答了。
答:并不一定,取決于機器的核數(shù)和任務(wù)類型。
1.如果是執(zhí)行多個計算密集型任務(wù):
①單核:串行 > 并行。
②多核:并行 > 串行。
2.如果是執(zhí)行多個IO密集型任務(wù):
①單核:并行 > 串行。
②多核:并行 > 串行。
在多核或多CPU,或支持Hyper-threading的CPU上使用多線程程序設(shè)計的好處是顯而易見,即提高了程序的執(zhí)行吞吐率。
在單CPU或單核的計算機上,使用多線程技術(shù),也可以把進程中負責I/O處理、人機交互而常被阻塞的部分與密集計算的部分分開來執(zhí)行,編寫專門的workhorse線程執(zhí)行密集計算,從而提高了程序的執(zhí)行效率。
感謝各位的閱讀,以上就是“編程開發(fā)中多線程一定比單線程執(zhí)行效率高嗎”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對編程開發(fā)中多線程一定比單線程執(zhí)行效率高嗎這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
分享名稱:編程開發(fā)中多線程一定比單線程執(zhí)行效率高嗎
轉(zhuǎn)載來源:http://www.rwnh.cn/article14/jscsge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、網(wǎng)站策劃、網(wǎng)站設(shè)計、網(wǎng)站導航、網(wǎng)站收錄、移動網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)