Java為什麼要用多執行緒

2021-08-27 04:15:43 字數 464 閱讀 7925

用多執行緒只有乙個目的,那就是更好的利用cpu的資源,因為所有的多執行緒**都可以用單執行緒來實現。說這個話其實只有一半對,因為反應「多角色」的程式**,最起碼每個角色要給他乙個執行緒吧,否則連實際場景都無法模擬,當然也沒法說能用單執行緒來實現:比如最常見的「生產者,消費者模型」。

就例如乙個網路爬蟲的功能,有10億資料,假如一條請求花費0.1秒,因為時間有限,所以你要盡量提公升開發效率,你就需要好多的伺服器,大家也都知道,每台伺服器的價錢都是成本,這麼龐大的成本顯然不切實際。我們只能想辦法從自身提公升效率。

假如乙個請求花費0.1秒,你處理他的請求只需要大約1毫秒,其實百分之99的時間都已經浪費了,所以,我想可以理論上開闢100個執行緒請求資料,這樣cpu就沒有任何浪費。當然,也只是理論上,實際上,執行緒之間的切換也是需要開銷的,所以不可能開闢這麼多的執行緒,不過開闢幾個執行緒是很不錯的選擇。

執行緒,一般就是在解決cpu浪費資源時才會用到。

這就是為什麼要用到執行緒。

為什麼要用多執行緒

以前我認為多執行緒的作用就是提公升效能。實際上,多執行緒並不一定能提公升效能 甚至還會降低效能 多執行緒也不只是為了提公升效能。多執行緒主要有以下的應用場景 1 避免阻塞 非同步呼叫 單個執行緒中的程式,是順序執行的。如果前面的操作發生了阻塞,那麼就會影響到後面的操作。這時候可以採用多執行緒,我感覺...

為什麼要用多執行緒

1 避免阻塞 非同步呼叫 2 避免cpu空轉 需要處理的資訊提供得太慢,導致 cpu 效能沒有充分利用,這個時候多程序能充分利用 cpu 在io程式設計一節中,我們已經知道,cpu的速度遠遠快於磁碟 網路等io。在乙個執行緒中,cpu執行 的速度極快,然而,一旦遇到io操作,如讀寫檔案 傳送網路資料...

Python 為什麼要用執行緒池?

多執行緒的情況下確實可以最大限度發揮多核處理器的計算能力,提高系統的吞吐量和效能。但是如果隨意使用多執行緒,對系統的效能反而有不利影響。比如下面的情況 建立執行緒是需要時間的,假設執行緒建立所需時間為t1,執行緒執行任務時間為t2,執行緒銷毀時間為t3,而往往t1 t3 t2。所以頻繁建立和銷毀執行...