Java多線程使用場景


使用多線程就一定效率高嗎? 有時候使用多線程並不是為了提高效率,而是使得CPU能夠同時處理多個事件。

使用場景1

為什么了不阻塞主線程,啟動其他線程來做耗時的事情。

比如app開發中耗時的操作都不在UI主線程中做。

使用場景2

實現響應更快的應用程序, 即主線程專門監聽用戶請求,子線程用來處理用戶請求。以獲得大的吞吐量。
感覺這種情況下,多線程的效率未必高。 這種情況下的多線程是為了不必等待, 可以並行處理多條數據。

比如JavaWeb的就是主線程專門監聽用戶的HTTP請求,然后啟動子線程去處理用戶的HTTP請求。

使用場景3

某種優先級雖然很低的服務,但是卻要不定時去做。

比如Jvm的垃圾回收。

使用場景4

某種任務,雖然耗時,但是不耗CPU的操作時,開啟多個線程,效率會有顯著提高。
比如讀取文件,然后處理。 磁盤IO是個很耗費時間,但是不耗CPU計算的工作。 所以可以一個線程讀取數據,一個線程處理數據。肯定比
一個線程讀取數據,然后處理效率高。 因為兩個線程的時候充分利用了CPU等待磁盤IO的空閑時間。

曾幾何時想過使用多線程讀取磁盤數據, 但是讀取磁盤數據的性能瓶頸是IO,而不是CPU。 使用多線程的目的是為了不讓CPU閑下來,明顯不適合用於讀取磁盤數據。

 


免責聲明!

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



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