国产美女一级毛片精品久久久|婷婷影院在线综合免费视频|最新国产午夜精品视频成人|久久精品九九无码免费

Java多線程操作中守護(hù)線程的問(wèn)題?

來(lái)源:北大青鳥(niǎo)飛迅校區(qū)|發(fā)布時(shí)間:2013-04-26 10:52:21

  Java多線程操作在運(yùn)行的時(shí)候會(huì)有不少的問(wèn)題困擾著我們。我們需要不斷的學(xué)習(xí)以便于解決這些難題。下面我們就看看如何才能掌握相關(guān)的語(yǔ)法知識(shí)解決這些問(wèn)題。

  Java多線程操作談到阻塞,就不能不談一談死鎖,略一分析就能發(fā)現(xiàn),suspend() 方法和不指定超時(shí)期限的 waIT() 方法的調(diào)用都可能產(chǎn)生死鎖。遺憾的是,Java 并不在語(yǔ)言級(jí)別上支持死鎖的避免,我們?cè)诰幊讨斜仨毿⌒牡乇苊馑梨i。

  以上我們對(duì) Java多線程操作 中實(shí)現(xiàn)線程阻塞的各種方法作了一番分析,我們重點(diǎn)分析了 waIT() 和 notify()方法,因?yàn)樗鼈兊墓δ茏顝?qiáng)大,使用 也最靈活,但是這也導(dǎo)致了它們的效率較低,較容易出錯(cuò)。實(shí)際使用中我們應(yīng)該靈活使用各種方法,以便更好地達(dá)到我們的目的。

  Java多線程操作中守護(hù)線程

  守護(hù)線程是一類特殊的線程,它和普通線程的區(qū)別在于它并不是應(yīng)用程序的核心部分,當(dāng)一個(gè)應(yīng)用程序的所有非守護(hù)線程終止運(yùn)行時(shí),即使仍然有守護(hù)線程在運(yùn) 行,應(yīng)用程序也將終止,反之,只要有一個(gè)非守護(hù)線程在運(yùn)行,應(yīng)用程序就不會(huì)終止。守護(hù)線程一般被用于在后臺(tái)為其它線程提供服務(wù)。

  可以通過(guò)調(diào)用方法 isDaemon() 來(lái)判斷一個(gè)線程是否是守護(hù)線程,也可以調(diào)用方法 setDaemon() 來(lái)將一個(gè)線程設(shè)為守護(hù)線程。

  Java多線程操作組

  線程組是一個(gè) Java多線程操作 特有的概念,在 Java 中,線程組是類ThreadGroup 的對(duì)象,每個(gè)線程都隸屬于唯一一個(gè)線程組,這個(gè)線程組在線程創(chuàng)建時(shí)指定并在線程的整個(gè)生命期內(nèi)都不能更改。

  你可以通過(guò)調(diào)用包含 ThreadGroup 類型參數(shù)的 Thread 類構(gòu)造函數(shù)來(lái)指定線程屬的線程組,若沒(méi)有指定,則線程缺省地隸屬于名為 system 的系統(tǒng)線程組。

  在 Java 中,除了預(yù)建的系統(tǒng)線程組外,所有線程組都必須顯式創(chuàng)建。在 Java 中,除系統(tǒng)線程組外的每個(gè)線程組又隸屬于另一個(gè)線程組,你可以在 創(chuàng)建線程組時(shí)指定其所隸屬的線程組,若沒(méi)有指定,則缺省地隸屬于系統(tǒng)線程組。這樣,所有線程組組成了一棵以系統(tǒng)線程組為根的樹(shù)。

  Java 允許我們對(duì)一個(gè)線程組中的所有線程同時(shí)進(jìn)行操作,比如我們可以通過(guò)調(diào)用線程組的相應(yīng)方法來(lái)設(shè)置其中所有線程的優(yōu)先級(jí),也可以啟動(dòng)或阻塞其中的所有線程。

  Java多線程操作 的線程組機(jī)制的另一個(gè)重要作用是線程安全。線程組機(jī)制允許我們通過(guò)分組來(lái)區(qū)分有不同安全特性的線程,對(duì)不同組的線程進(jìn)行不同的處理,還可以通過(guò)線程組的分層結(jié)構(gòu)來(lái)支持不對(duì)等安全措施的采用。

  Java多線程操作 的 ThreadGroup 類提供了大量的方法來(lái)方便我們對(duì)線程組樹(shù)中的每一個(gè)線程組以及線程組中的每一個(gè)線程進(jìn)行操作。

  Java多線程操作總結(jié)

  在本文中,我們講述了 Java多線程操作的方方面面,包括創(chuàng)建線程,以及對(duì)多個(gè)線程進(jìn)行調(diào)度、管理。我們深刻認(rèn)識(shí)到了多線程編程的復(fù)雜性,以及線程切換開(kāi)銷帶來(lái)的多線程程序的低效性,這也促使我們認(rèn)真地思考一個(gè)問(wèn)題:我們是否需要多線程?何時(shí)需要多線程?

上一篇:怎么將JavaScript中的一組數(shù)據(jù)轉(zhuǎn)換為字符串
下一篇:審查Java代碼時(shí)常見(jiàn)的十一種錯(cuò)誤

招生熱線: 4008-0731-86 / 0731-82186801

學(xué)校地址: 長(zhǎng)沙市天心區(qū)團(tuán)結(jié)路6號(hào)

Copyright © 2006 | 湖南大計(jì)信息科技有限公司 版權(quán)所有

湘ICP備14017520號(hào)-3

關(guān)注我們
在線咨詢
嘿,我來(lái)幫您!