熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

實戰Java多線程編程精要之高級支持

2022-06-13   來源: Java高級技術 

  線程組
  線程是被個別創建的但可以將它們歸類到線程組中以便於調試和監視只能在創建線程的同時將它與一個線程組相關聯在使用大量線程的程序中使用線程組組織線程可能很有幫助可以將它們看作是計算機上的目錄和文件結構
  
  線程間發信
  當線程在繼續執行前需要等待一個條件時僅有 synchronized 關鍵字是不夠的雖然 synchronized 關鍵字阻止並發更新一個對象但它沒有實現線程間發信Object 類為此提供了三個函數wait()notify() 和 notifyAll()以全球氣候預測程序為例這些程序通過將地球分為許多單元在每個循環中每個單元的計算都是隔離進行的直到這些值趨於穩定然後相鄰單元之間就會交換一些數據所以從本質上講在每個循環中各個線程都必須等待所有線程完成各自的任務以後才能進入下一個循環這個模型稱為 屏蔽同步下例說明了這個模型
  
  屏蔽同步
  數 notify() 只通知一個正在等待的線程當對每次只能由一個線程使用的資源進行訪問限制時這個函數很有用但是不可能預知哪個線程會獲得這個通知因為這取決於 Java 虛擬機 (JVM) 調度算法
  
  將 CPU 讓給另一個線程
  當線程放棄某個稀有的資源(如數據庫連接或網絡端口)時它可能調用 yield() 函數臨時降低自己的優先級以便某個其他線程能夠運行
  
  守護線程
  有兩類線程用戶線程和守護線程用戶線程是那些完成有用工作的線程 守護線程是那些僅提供輔助功能的線程Thread 類提供了 setDaemon() 函數Java 程序將運行到所有用戶線程終止然後它將破壞所有的守護線程在 Java 虛擬機 (JVM) 中即使在 main 結束以後如果另一個用戶線程仍在運行則程序仍然可以繼續運行
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27507.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.