多線程搜索文件比單線程快嗎 測網(wǎng)速單線程和多線程什么意思

大家好,如果您還對多線程搜索文件比單線程快嗎不太了解,沒有關(guān)系,今天就由本站為大家分享多線程搜索文件比單線程快嗎的知識,包括測網(wǎng)速單線程和多線程什么意思的問題都會給大家...
大家好,如果您還對多線程搜索文件比單線程快嗎不太了解,沒有關(guān)系,今天就由本站為大家分享多線程搜索文件比單線程快嗎的知識,包括測網(wǎng)速單線程和多線程什么意思的問題都會給大家分析到,還望可以解決大家的問題,下面我們就開始吧!
多線程的執(zhí)行效率一定高于單線程嗎
恰恰相反,多線程的執(zhí)行效率一定低于單線程
多線程的目的并不在于提供CPU的執(zhí)行效率,而且在于多個事務(wù)的準(zhǔn)并行處理。準(zhǔn)并行的涵義在于并不是同時的,單核的CPU一個時刻只能執(zhí)行一條機器指令。
多線程是將CPU的PC指針運行分解為非常小的時間片,將這些時間片分配在不同的進(jìn)程,不同的線程之間運行。
這樣CPU就不至于長時間堵塞在某一些事務(wù)中,導(dǎo)致其它事務(wù)沒有辦法處理。
比如某個軟件在進(jìn)行大數(shù)據(jù)的收發(fā)或者運算時,需要刷新顯示界面以及人機交互。
假設(shè)數(shù)據(jù)的收發(fā)或者運算需要數(shù)秒時間,如果用單線程,在做數(shù)據(jù)處理的幾秒時間內(nèi),沒辦法顯示人機交互,則用戶在界面上做操作,程序就沒有任何響應(yīng)。
如果用多線程,在數(shù)據(jù)處理線程處理了一段時間之后,CPU的指針暫停執(zhí)行數(shù)據(jù)線程程序,轉(zhuǎn)去執(zhí)行界面處理程序,則用戶做操作時,程序不至于沒有響應(yīng)。
采用多線程之后,由于線程本身創(chuàng)建和切換的開銷,采用多線程不會提高程序的執(zhí)行速度,反而會降低速度多線程和單線程有什么本質(zhì)區(qū)別
多線程和單線程本質(zhì)區(qū)別是:
(1)多線程的產(chǎn)生并不是因為發(fā)明了多核CPU甚至現(xiàn)在有多個CPU+多核的硬件,也不是因為多線程CPU運行效率比單線程高。單從CPU的運行效率上考慮,單任務(wù)進(jìn)程及單線程效率是最高的,因為CPU沒有任何進(jìn)程及線程的切換開銷,
(2)實際上,多線程的出現(xiàn)主要為了解決IO設(shè)備的讀寫速度往往比CPU的處理速度慢造成的單線程程序運行阻塞問題,一個極端的例子就是如果你需要用戶在鍵盤上輸入一個數(shù)據(jù),當(dāng)用戶沒有輸入前,單線程程序就阻塞了,多線程程序就可以放個音樂或繼續(xù)干一些程序中除了鍵盤輸入外的工作,因此,多線程能提高因程序由于等待某個資源阻塞時其他資源的利用率(是利用率不是效率)。
(3)因此多線程與單線程的最大區(qū)別,多線程程序能在等待某個IO操作時,繼續(xù)完成非這個IO的其他工作,有利于提高完成整個任務(wù)的效果和速度。此外,多線程程序與單線程程序?qū)Τ绦蛟O(shè)計也有不同的流程和結(jié)構(gòu),多線程需要考慮對靜態(tài)變量等資源的操作互鎖及程序執(zhí)行的同步問題。
在什么情況下單線程比多線程效率高
這個問題需要根據(jù)幾個方面綜合考慮,比如服務(wù)器配置,應(yīng)用主要做什么操作。分析如下:
第一,你的服務(wù)器主機是不是單核的,如果是的話,那么一般來說單線程要比多線程要快,前提條件是你的io操作不特別耗時,如果耗時的話,那么就不一定了,因為這段時間CPU是空閑的。
第二,是計算密集還是io密集,如果是計算密集的話,單線程要比多線程快,就比如Redis就是單線程的,基本都是操作內(nèi)存。但是如果任務(wù)可拆分,且主機支持多核,那仍然建議多線程
第三,服務(wù)器是多核的話,那么就要充分利用多線程的優(yōu)勢了,正常情況,單線程是比不上的。
希望我的回答對你有所幫助。
網(wǎng)速單線程和多線程有什么區(qū)別
網(wǎng)速單線程主要就是進(jìn)程只有一個線程,在程序執(zhí)行時,所走的程序路徑按照連續(xù)順序排下來,前面的必須處理好,后面的才會執(zhí)行。
多線程主要就是指一個進(jìn)程中同時有多個線程在執(zhí)行,多線程的好處是提高執(zhí)行效率但是會容易造成死鎖的情況。
為什么不同網(wǎng)絡(luò)之間傳文件很慢
傳輸文件的速度和以下因素有關(guān):
1.網(wǎng)絡(luò)硬件問題,如網(wǎng)線質(zhì)量不好,導(dǎo)致丟包嚴(yán)重;還有網(wǎng)卡本身的速度限制——現(xiàn)在的網(wǎng)卡都支持百兆甚至千兆,基本不存在這個問題了。
2.文件本身的問題,比如都是百兆的文件夾,但一個文件夾里只要一個百兆的視頻,而另一個文件夾是由很幾十或上百個文件組成的應(yīng)用程序,那么單個文件的傳輸速度要明顯快些。
3.和文件傳輸方式有關(guān),直接使用系統(tǒng)自帶的復(fù)制粘貼這種單線程的操作肯定沒有使用局域網(wǎng)傳輸工具如“飛秋”這種支持多線程傳輸?shù)牟僮鱾鬏數(shù)目臁?/p>
END,本文到此結(jié)束,如果可以幫助到大家,還望關(guān)注本站哦!
本文鏈接:http:///kaifa/2054.html