首頁 > Java > java教程 > 主體

Java 多執行緒代價

黄舟
發布: 2017-02-28 10:16:32
原創
1228 人瀏覽過

從單執行緒轉換成多執行緒不只是提供了益處。它也有一些代價。不要在應用程式中因為你可以用就去使用多執行緒。你應該有一個好的想法透過這樣做能得到什麼好處,好處比代價更大。當處在懷疑中的時候,嘗試測試衡量應用的性能或反應速度,代替只是猜測。

更複雜的設計

雖然多執行緒的某些部分比單執行緒的簡單,但是其他的部分更複雜。透過多執行緒執行的程式碼存取共享的資料需要特殊的注意。線程交互總是原理簡單。來自於不正確的線程同步出現的錯誤很難去檢測,出現以及修復。

上下文切換開銷

當一個CPU從一個執行緒切換到另外一個執行緒的時候,這個CPU需要保存目前執行緒的本地數據,程式指針等等信息,以及載入下一個執行緒的本地數據,程式指針去執行。這個切換稱之為「上下文切換」。這個CPU從執行一個執行緒的上下文切換到執行另外一個執行緒的上下文。

上下文切換不是低廉的。你不想在線程之間切換超過必須的。

增加資源消耗

一個執行緒為了運行需要電腦的一些資源。此外CPU的一個執行緒需要一些記憶體去保持它的本地堆疊。在作業系統管理執行緒的內部可能也會佔去一些資源。嘗試著創建100個執行緒的程序,除了等什麼都不做,然後看著當運行時候會消耗多少記憶體。


 以上就是Java 多執行緒代價的內容,更多相關內容請關注PHP中文網(www.php.cn)!


#
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!