自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java線程如何才能管理好自己的“小弟”

開發(fā) 后端
Java線程在我們的使用中需要注意很多分支的應(yīng)用,其實(shí)這才是Java這門語言的真諦。下面我們就看看如何才能使用好Java線程的相關(guān)支線。

Java線程需要大家學(xué)習(xí)知識有很多,我們在不斷學(xué)習(xí)的過程中就會體會到Java線程中繁多的分支,下面我們就來看看幾個(gè)具有代表性的分支,希望大家有所收獲。

使當(dāng)前線程(即調(diào)用該方法的Java線程)暫停執(zhí)行一段時(shí)間,讓其他線程有機(jī)會繼續(xù)執(zhí)行,但它并不釋放對象鎖。也就是如果有Synchronized同步塊,其他線程仍然不同訪問共享數(shù)據(jù)。注意該方法要捕獲異常。#t#

比如有兩個(gè)線程同時(shí)執(zhí)行(沒有Synchronized),一個(gè)Java線程優(yōu)先級為MAX_PRIORITY,另一個(gè)為MIN_PRIORITY,如果沒有Sleep()方法,只有高優(yōu)先級的線程執(zhí)行完成后,低優(yōu)先級的線程才能執(zhí)行;但當(dāng)高優(yōu)先級的線程sleep(5000)后,低優(yōu)先級就有機(jī)會執(zhí)行了。

總之,sleep()可以使低優(yōu)先級的Java線程得到執(zhí)行的機(jī)會,當(dāng)然也可以讓同優(yōu)先級、高優(yōu)先級的線程有執(zhí)行的機(jī)會。

join()

join()方法使調(diào)用該方法的線程在此之前執(zhí)行完畢,也就是等待調(diào)用該方法的線程執(zhí)行完畢后再往下繼續(xù)執(zhí)行。注意該方法也要捕獲異常。

yield()

它與sleep()類似,只是不能由用戶指定暫停多長時(shí)間,并且yield()方法只能讓同優(yōu)先級的Java線程有執(zhí)行的機(jī)會。

wait()和notify()、notifyAll()

這三個(gè)方法用于協(xié)調(diào)多個(gè)Java線程對共享數(shù)據(jù)的存取,所以必須在Synchronized語句塊內(nèi)使用這三個(gè)方法。前面說過Synchronized這個(gè)關(guān)鍵字用于保護(hù)共享數(shù)據(jù),阻止其他線程對共享數(shù)據(jù)的存取。但是這樣程序的流程就很不靈活了,如何才能在當(dāng)前線程還沒退出Synchronized數(shù)據(jù)塊時(shí)讓其他線程也有機(jī)會訪問共享數(shù)據(jù)呢?此時(shí)就用這三個(gè)方法來靈活控制。

wait()方法使當(dāng)前線程暫停執(zhí)行并釋放對象鎖標(biāo)志,讓其他線程可以進(jìn)入Synchronized數(shù)據(jù)塊,當(dāng)前線程被放入對象等待池中。當(dāng)調(diào)用 notify()方法后,將從對象的等待池中移走一個(gè)任意的線程并放到鎖標(biāo)志等待池中,只有鎖標(biāo)志等待池中的Java線程能夠獲取鎖標(biāo)志;如果鎖標(biāo)志等待池中沒有線程,則notify()不起作用。

notifyAll()則從對象等待池中移走所有等待那個(gè)對象的Java線程并放到鎖標(biāo)志等待池中。

責(zé)任編輯:張浩 來源: TT網(wǎng)絡(luò)
相關(guān)推薦

2010-03-16 19:08:03

Java線程同步

2010-03-15 16:56:16

Java線程池

2019-08-19 08:01:50

Flink數(shù)據(jù)管理內(nèi)存

2019-12-05 12:00:18

人工智能AI

2012-07-30 09:35:10

項(xiàng)目管理

2010-03-16 14:32:51

Java系統(tǒng)線程組

2010-03-16 17:00:02

Java多線程支持

2014-02-11 11:22:00

并購管理

2010-03-17 17:37:17

Java線程返回值

2011-03-24 16:01:30

數(shù)據(jù)庫管理

2010-03-15 19:21:37

Java多線程

2011-11-18 09:16:20

團(tuán)隊(duì)管理

2011-03-03 13:17:43

Oracle數(shù)據(jù)庫

2009-01-02 22:38:48

2010-03-18 09:22:31

Java多線程遞歸

2020-02-24 11:11:10

IT企業(yè)技術(shù)

2020-07-02 07:00:00

API接口網(wǎng)關(guān)

2021-03-02 15:31:37

程序員技能開發(fā)者

2010-12-01 11:21:13

云環(huán)境出口管制數(shù)據(jù)

2015-04-27 09:33:02

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號