更新時間:2020-04-28 13:10:11 來源:動力節(jié)點(diǎn) 瀏覽2311次
Java中使用ThreadGroup類來代表線程組,表示一組線程的集合,可以對一批線程和線程組進(jìn)行管理。可以把線程歸屬到某一個線程組中,線程組中可以有線程對象,也可以有線程組,組中還可以有線程,這樣的組織結(jié)構(gòu)有點(diǎn)類似于樹的形式
用戶創(chuàng)建的所有線程都屬于指定線程組,如果沒有顯式指定屬于哪個線程組,那么該線程就屬于默認(rèn)線程組(即main線程組)。默認(rèn)情況下,子線程和父線程處于同一個線程組。
此外,只有在創(chuàng)建線程時才能指定其所在的線程組,線程運(yùn)行中途不能改變它所屬的線程組,也就是說線程一旦指定所在的線程組就不能改變。
二.為什么要使用線程組
1.安全
同一個線程組的線程是可以相互修改對方的數(shù)據(jù)的。但如果在不同的線程組中,那么就不能“跨線程組”修改數(shù)據(jù),可以從一定程度上保證數(shù)據(jù)安全。
2.批量管理
可以批量管理線程或線程組對象,有效地對線程或線程組對象進(jìn)行組織或控制。
三.線程組使用示例
1.線程關(guān)聯(lián)線程組:一級關(guān)聯(lián)
所謂一級關(guān)聯(lián)就是父對象中有子對象,但并不創(chuàng)建孫對象。比如創(chuàng)建一個線程組,然后將創(chuàng)建的線程歸屬到該組中,從而對這些線程進(jìn)行有效的管理。代碼示例如下:
執(zhí)行結(jié)果如下:
2.線程關(guān)聯(lián)線程組:多級關(guān)聯(lián)
所謂的多級關(guān)聯(lián)就是父對象中有子對象,子對象中再創(chuàng)建孫對象也就出現(xiàn)了子孫的效果了。比如使用下圖第二個構(gòu)造方法,將子線程組歸屬到某個線程組,再將創(chuàng)建的線程歸屬到子線程組,這樣就會有線程樹的效果了。
代碼示例如下:
執(zhí)行結(jié)果如下:
3.批量管理組內(nèi)線程
使用線程組自然是要對線程進(jìn)行批量管理,比如可以批量中斷組內(nèi)線程,代碼示例如下:
執(zhí)行結(jié)果如下:
本文只是對Java中的ThreadGroup類進(jìn)行了簡單的介紹和使用示范,更多線程組的操作可以查看JDKAPI。
以上就是動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對“Java基礎(chǔ)學(xué)習(xí):Java線程視頻教程”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743