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

Java多線程操作相關問題總結

2013-11-23 19:49:55  來源: Java高級技術 
    Java多線程操作在運行的時候會有不少的問題困擾著我們我們需要不斷的學習以便於解決這些難題下面我們就看看如何才能掌握相關的語法知識解決這些問題
   
    Java多線程操作談到阻塞就不能不談一談死鎖略一分析就能發現suspend() 方法和不指定超時期限的 wait() 方法的調用都可能產生死鎖遺憾的是Java 並不在語言級別上支持死鎖的避免我們在編程中必須小心地避免死鎖
   
    以上我們對 Java多線程操作 中實現線程阻塞的各種方法作了一番分析我們重點分析了 wait() 和 notify()方法因為它們的功能最強大使用 也最靈活但是這也導致了它們的效率較低較容易出錯實際使用中我們應該靈活使用各種方法以便更好地達到我們的目的
   
    Java多線程操作中守護線程
   
    守護線程是一類特殊的線程它和普通線程的區別在於它並不是應用程序的核心部分當一個應用程序的所有非守護線程終止運行時即使仍然有守護線程在運 行應用程序也將終止反之只要有一個非守護線程在運行應用程序就不會終止守護線程一般被用於在後台為其它線程提供服務
   
    可以通過調用方法 isDaemon() 來判斷一個線程是否是守護線程也可以調用方法 setDaemon() 來將一個線程設為守護線程
   
    Java多線程操作組
   
    線程組是一個 Java多線程操作 特有的概念在 Java 中線程組是類ThreadGroup 的對象每個線程都隸屬於唯一一個線程組這個線程組在線程創建時指定並在線程的整個生命期內都不能更改
   
    你可以通過調用包含 ThreadGroup 類型參數的 Thread 類構造函數來指定線程屬的線程組若沒有指定則線程缺省地隸屬於名為 system 的系統線程組
   
    在 Java 中除了預建的系統線程組外所有線程組都必須顯式創建在 Java 中除系統線程組外的每個線程組又隸屬於另一個線程組你可以在 創建線程組時指定其所隸屬的線程組若沒有指定則缺省地隸屬於系統線程組這樣所有線程組組成了一棵以系統線程組為根的樹
   
    Java 允許我們對一個線程組中的所有線程同時進行操作比如我們可以通過調用線程組的相應方法來設置其中所有線程的優先級也可以啟動或阻塞其中的所有線程
   
    Java多線程操作 的線程組機制的另一個重要作用是線程安全線程組機制允許我們通過分組來區分有不同安全特性的線程對不同組的線程進行不同的處理還可以通過線程組的分層結構來支持不對等安全措施的采用
   
    Java多線程操作 的 ThreadGroup 類提供了大量的方法來方便我們對線程組樹中的每一個線程組以及線程組中的每一個線程進行操作
   
    Java多線程操作總結
   
    在本文中我們講述了 Java多線程操作的方方面面包括創建線程以及對多個線程進行調度管理我們深刻認識到了多線程編程的復雜性以及線程切換開銷帶來的多線程程序的低效性這也促使我們認真地思考一個問題我們是否需要多線程?何時需要多線程?
   
    多線程的核心在於多個代碼塊並發執行本質特點在於各代碼塊之間的代碼是亂序執行的我們的程序是否需要多線程就是要看這是否也是它的內在特點
   
    假如我們的程序根本不要求多個代碼塊並發執行那自然不需要使用多線程假如我們的程序雖然要求多個代碼塊並發執行但是卻不要求亂序則我們完全可以 用一個循環來簡單高效地實現也不需要使用多線程只有當它完全符合多線程的特點時Java多線程操作機制對線程間通信和線程管理的強大支持才能有用武之地這時使 用多線程才是值得的
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27523.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.