1. 程式人生 > >Java 多執行緒同步 鎖機制與synchronized

Java 多執行緒同步 鎖機制與synchronized

要是很多人在等這把鑰匙,等鑰匙還回來以後,誰會優先得到鑰匙?Not guaranteed。象前面例子裡那個想連續使用兩個上鎖房間的傢伙,他中間還鑰匙的時候如果還有其他人在等鑰匙,那麼沒有任何保證這傢伙能再次拿到。 (JAVA規範在很多地方都明確說明不保證,象Thread.sleep()休息後多久會返回執行,相同優先權的執行緒那個首先被執行,當要訪問物件的鎖被 釋放後處於等待池的多個執行緒哪個會優先得到,等等。我想最終的決定權是在JVM,之所以不保證,就是因為JVM在做出上述決定的時候,絕不是簡簡單單根據 一個條件來做出判斷,而是根據很多條。而由於判斷條件太多,如果說出來可能會影響JAVA的推廣,也可能是因為智慧財產權保護的原因吧。SUN給了個不保證 就混過去了。無可厚非。但我相信這些不確定,並非完全不確定。因為計算機這東西本身就是按指令執行的。即使看起來很隨機的現象,其實都是有規律可尋。學過 計算機的都知道,計算機裡隨機數的學名是偽隨機數,是人運用一定的方法寫出來的,看上去隨機罷了。另外,或許是因為要想弄的確定太費事,也沒多大意義,所 以不確定就不確定了吧。)