真正理解java wait notify

2021-07-10 15:51:06 字數 744 閱讀 1032

從字面上理解,

notify()方法能夠喚醒乙個正在等待該物件的monitor的執行緒,當有多個執行緒都在等待該物件的monitor的話,則只能喚醒其中乙個執行緒,具體喚醒哪個執行緒則不得而知。

nofityall()方法能夠喚醒所有正在等待該物件的monitor的執行緒,這一點與notify()方法是不同的。雖然會喚醒所有的程序,但是同時也只會有乙個執行,因為只有乙個程序可以獲得鎖。

notify()的意思在於,如果此時有三個程序wait在乙個鎖上,notify只會喚醒乙個,其他的二個會繼續等待notify訊號,即使這個鎖是空閒的,也不能執行下去。notifyall()就會喚醒全部的等待在這個鎖上的程序,一旦這個鎖空閒,就會立即執行。也就是這三個程序會按某種順序執行完畢。

可以把下面例子中的notify和notifyall的注釋替換一遍。看看結果

package com.me.test;

/** * created by administrator on 2016/3/21.

*/public class waitnotifytest

static class thread1 extends thread catch (interruptedexception e) }}

}static class thread2 extends thread catch (interruptedexception e)

synchronized (object)}}

}

真正理解矩陣

孟巖,從很獨特的角度理解矩陣。理解矩陣 一 理解矩陣 二 理解矩陣 三 這裡的運動不同於物理中連續的運動,而是瞬間的從一點到另一點的運動 即躍遷 術語為 變換 因此,矩陣是對線性空間裡變換 即線性變換 的描述。選的基 座標系 不同,同乙個變換就有不同的描述,即有不同的矩陣,這些矩陣是相似的,矩陣a,...

真正理解SqlHelper嗎?

從個人版機房到現在的合作,一直在用sqlhelper。那到底為什麼要用?然後怎麼去用?真的了解嗎?調機房的時候,我發現自己對sqlhelper的理解特別的淺顯,只是大概說一下作用,一些具體的就不明白了。下面我主要總結一下自己學習中的缺失的部分。sqlhelper 是乙個基於.net framewor...

typedef的真正理解

首先請看看下面這兩句 typedef int a 10 typedef void p void 如果你能一眼就看出它們的意思,那請不要再往下看了。如果你不太理解,或概念還有些模糊,請繼續往下看吧。下面的東西我就直接把人家的東西粘上去吧。自己敲太慢了。呵呵。原文 摘錄 typedef用來宣告乙個別名,...