Java基礎(chǔ)知識(shí)學(xué)習(xí)——線(xiàn)程2

一胞得、線(xiàn)程的優(yōu)先級(jí)別

線(xiàn)程優(yōu)先級(jí)別的使用范例:

run()方法一結(jié)束捧书,線(xiàn)程也就結(jié)束了苛吱。

二酪术、線(xiàn)程同步

synchronized關(guān)鍵字的使用范例:

線(xiàn)程死鎖的問(wèn)題:

代碼:

package cn.galc.test;

/*這個(gè)小程序模擬的是線(xiàn)程死鎖的問(wèn)題*/

public class TestDeadLock implements Runnable {

public int flag = 1;

static Object o1 = new Object(), o2 = new Object();

public void run() {

System.out.println(Thread.currentThread().getName() + "的flag=" + flag);

/*

* 運(yùn)行程序后發(fā)現(xiàn)程序執(zhí)行到這里打印出flag以后就再也不往下執(zhí)行后面的if語(yǔ)句了

* 程序也就死在了這里,既不往下執(zhí)行也不退出

*/

/* 這是flag=1這個(gè)線(xiàn)程 */

if (flag == 1) {

synchronized (o1) {

/* 使用synchronized關(guān)鍵字把對(duì)象01鎖定了 */

try {

Thread.sleep(500);

} catch (InterruptedException e) {

e.printStackTrace();

}

synchronized (o2) {

/*

* 前面已經(jīng)鎖住了對(duì)象o1翠储,只要再能鎖住o2绘雁,那么就能執(zhí)行打印出1的操作了

* 可是這里無(wú)法鎖定對(duì)象o2,因?yàn)樵诹硗庖粋€(gè)flag=0這個(gè)線(xiàn)程里面已經(jīng)把對(duì)象o1給鎖住了

* 盡管鎖住o2這個(gè)對(duì)象的線(xiàn)程會(huì)每隔500毫秒睡眠一次援所,可是在睡眠的時(shí)候仍然是鎖住o2不放的

*/

System.out.println("1");

}

}

}

/*

* 這里的兩個(gè)if語(yǔ)句都將無(wú)法執(zhí)行庐舟,因?yàn)橐呀?jīng)造成了線(xiàn)程死鎖的問(wèn)題

* flag=1這個(gè)線(xiàn)程在等待flag=0這個(gè)線(xiàn)程把對(duì)象o2的鎖解開(kāi),

* 而flag=0這個(gè)線(xiàn)程也在等待flag=1這個(gè)線(xiàn)程把對(duì)象o1的鎖解開(kāi)

* 然而這兩個(gè)線(xiàn)程都不愿意解開(kāi)鎖住的對(duì)象住拭,所以就造成了線(xiàn)程死鎖的問(wèn)題

*/

/* 這是flag=0這個(gè)線(xiàn)程 */

if (flag == 0) {

synchronized (o2) {

/* 這里先使用synchronized鎖住對(duì)象o2 */

try {

Thread.sleep(500);

} catch (InterruptedException e) {

e.printStackTrace();

}

synchronized (o1) {

/*

* 前面已經(jīng)鎖住了對(duì)象o2挪略,只要再能鎖住o1历帚,那么就能執(zhí)行打印出0的操作了 可是這里無(wú)法鎖定對(duì)象o1,因?yàn)樵诹硗庖粋€(gè)flag=1這個(gè)線(xiàn)程里面已經(jīng)把對(duì)象o1給鎖住了 盡管鎖住o1這個(gè)對(duì)象的線(xiàn)程會(huì)每隔500毫秒睡眠一次杠娱,可是在睡眠的時(shí)候仍然是鎖住o1不放的

*/

System.out.println("0");

}

}

}

}

public static void main(String args[]) {

TestDeadLock td1 = new TestDeadLock();

TestDeadLock td2 = new TestDeadLock();

td1.flag = 1;

td2.flag = 0;

Thread t1 = new Thread(td1);

Thread t2 = new Thread(td2);

t1.setName("線(xiàn)程td1");

t2.setName("線(xiàn)程td2");

t1.start();

t2.start();

}

}

解決線(xiàn)程死鎖的問(wèn)題最好只鎖定一個(gè)對(duì)象挽牢,不要同時(shí)鎖定兩個(gè)對(duì)象

生產(chǎn)者消費(fèi)者問(wèn)題:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市摊求,隨后出現(xiàn)的幾起案子禽拔,更是在濱河造成了極大的恐慌,老刑警劉巖室叉,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件睹栖,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡茧痕,警方通過(guò)查閱死者的電腦和手機(jī)野来,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)凿渊,“玉大人梁只,你說(shuō)我怎么就攤上這事“T啵” “怎么了搪锣?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)彩掐。 經(jīng)常有香客問(wèn)我构舟,道長(zhǎng),這世上最難降的妖魔是什么堵幽? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任狗超,我火速辦了婚禮,結(jié)果婚禮上朴下,老公的妹妹穿的比我還像新娘努咐。我一直安慰自己,他們只是感情好殴胧,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布渗稍。 她就那樣靜靜地躺著,像睡著了一般团滥。 火紅的嫁衣襯著肌膚如雪竿屹。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天灸姊,我揣著相機(jī)與錄音拱燃,去河邊找鬼。 笑死力惯,一個(gè)胖子當(dāng)著我的面吹牛碗誉,可吹牛的內(nèi)容都是我干的召嘶。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼哮缺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼苍蔬!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蝴蜓,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎俺猿,沒(méi)想到半個(gè)月后茎匠,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡押袍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年诵冒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谊惭。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡汽馋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出圈盔,到底是詐尸還是另有隱情豹芯,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布驱敲,位于F島的核電站铁蹈,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏众眨。R本人自食惡果不足惜握牧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望娩梨。 院中可真熱鬧沿腰,春花似錦、人聲如沸狈定。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)掸冤。三九已至厘托,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間稿湿,已是汗流浹背铅匹。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留饺藤,地道東北人包斑。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓流礁,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親罗丰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子神帅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法萌抵,內(nèi)部類(lèi)的語(yǔ)法找御,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法绍填,線(xiàn)程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,664評(píng)論 18 399
  • 從三月份找實(shí)習(xí)到現(xiàn)在霎桅,面了一些公司,掛了不少讨永,但最終還是拿到小米滔驶、百度、阿里卿闹、京東揭糕、新浪、CVTE锻霎、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,278評(píng)論 11 349
  • Java多線(xiàn)程學(xué)習(xí) [-] 一擴(kuò)展javalangThread類(lèi) 二實(shí)現(xiàn)javalangRunnable接口 三T...
    影馳閱讀 2,965評(píng)論 1 18
  • 1.解決信號(hào)量丟失和假喚醒 public class MyWaitNotify3{ MonitorObject m...
    Q羅閱讀 881評(píng)論 0 1
  • 仿照Uber軟件制作了基本上一模一樣的產(chǎn)品著角。也遇到了很多問(wèn)題。先來(lái)簡(jiǎn)單說(shuō)一下今天做出的幾個(gè)界面1.首頁(yè) 首頁(yè)動(dòng)畫(huà)和...
    小白和小黑閱讀 732評(píng)論 3 1