簡體   English   中英

Java中的並發性如何提高在單核處理器上運行的程序的性能?

[英]How concurrency in java improves the performance of program running on single core processor?

最近,我在一本書中讀到,並發是用於多處理器編程的基本工具。

比起單核處理器有什么用?

並發是用於多處理器編程的基本工具。

是的,但是它在其他方面也可以提供幫助。 例如,如果cpu並非瓶頸,那么並發還可以提高單個核心系統的吞吐量(例如,因為線程花費了大部分時間來等待來自磁盤或網絡的I / O)。

當有多個任務需要同時運行時,並發很有用。 一個非常常見的示例是GUI編程。 您不希望您的UI在程序等待從磁盤或網絡加載數據時凍結,因此您有一個僅管理UI元素的線程(在Swing / AWT中稱為“事件調度線程”)和后台線程負責溝通或長期運行的計算。 操作系統來回交換它們,以確保在其他任務仍處於活動狀態時重繪UI。

能夠在運行線程之間切換對於感知單個核心處理器的性能很有用。 在許多系統中,UI的圖形部分是由另一個線程而不是由工作線程來更新的。 用戶在長時間運行任務時沒有任何反饋將令人沮喪。 並發在單核上的另一個有用的應用程序是以低優先級啟動長時間運行的任務,而用戶可以自由地同時做其他事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM