1.在java的內(nèi)置鎖機(jī)制中,每個(gè)對(duì)象都可以成為鎖,也就是說(shuō)每個(gè)對(duì)象都可以去調(diào)用wait,notify方法,而Object類是所有類的一個(gè)父類,把這些方法放在Object中,則java中的所有對(duì)象都可以去調(diào)用這些方法了。
2.一個(gè)線程可以擁有多個(gè)對(duì)象鎖,wait,notify,notifyAll跟對(duì)象鎖之間是有一個(gè)綁定關(guān)系的,比如你用對(duì)象鎖aObject調(diào)用的wait()方法,那么你只能通過(guò)aObject.notify()或者aObject.notifyAll()來(lái)喚醒這個(gè)線程,這樣jvm很容易就知道應(yīng)該從哪個(gè)對(duì)象鎖的等待池中去喚醒線程,假如用Thread.wait(),Thread.notify(),Thread.notifyAll()來(lái)調(diào)用,虛擬機(jī)根本就不知道需要操作的對(duì)象鎖是哪一個(gè)。