線程、多線程是什么?多線程的優點缺點?什么時候使用多線程?線程池是什么?如何實現多線程?


線程是什么?

線程是進程中的一條執行路徑,或者說是一個進程中獨立運行的最小單位,比如:我們使用迅雷下載文件,迅雷支持同時下載多個文件,文件數也是可以自定義的,每一個文件的下載就是一個線程,而迅雷這個軟件就是一個進程。

多線程是什么?

多線程:一個進程中同時有多個線程正在執行

為什么要使用多線程?

在一個程序中,有很多的操作是非常耗時的,如數據庫讀寫操作,IO操作等,如果使用單線程,那么程序就必須等待這些操作執行完成之后才能執行其他操作。使用多線程,可以在將耗時任務放在后台繼續執行的同時,同時執行其他操作。

例子:線程A被CPU執行,但是線程A中有一個IO操作,時間花費遠遠大於CPU的執行時間,所以后面的線程只有等待線程A執行完畢之后,才有機會執行,這種單線程執行的方式(同步)無法高效利用CPU,時間浪費也太多,而且用戶需要等待,所以使用多線程處理順應趨勢。

什么場景需要使用多線程?

 解析:1 耗時的操作使用線程,提高應用程序響應 2 並行操作時使用線程,如C/S架構的服務器端並發線程響應用戶的請求。 3 多CPU系統中,使用線程提高CPU利用率 4 改善程序結構。一個既長又復雜的進程可以考慮分為多個線程,成為幾個獨立或半獨立的運行部分,這樣的程序會利於理解和修改。 其他情況都使用單線程。(該解釋來源於網絡)

多線程優點?

可以提高程序的效率。

多線程的缺點?

1.使用太多線程,是很耗系統資源,因為線程需要開辟內存。更多線程需要更多內存。

2.影響系統性能,因為操作系統需要在線程之間來回切換。

3.需要考慮線程操作對程序的影響,如線程掛起,中止等操作對程序的影響。

4.線程使用不當會發生很多問題。

什么是線程池?

創建線程要花費昂貴的資源和時間,如果任務來了才創建線程那么響應時間會變長,而且一個進程能創建的線程數有限。為了避免這些問題,在程序啟動的時 候就創建若干線程來響應處理,它們被稱為線程池

類比:可以做一個類比,比如當你做飯的時候,如果每次都是去很遠的地方挑水,那么時間成本就很大,但是如果在做飯之前就打好了一桶水,隨時要用就隨時取

實現多線程的方式?

實現runable接口,並實現該接口的run()方法

繼承thred類,重寫run()方法

實現callable接口,重寫call()方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM