sychronized 同步的等待和喚醒鎖的狀態

2021-07-23 20:38:18 字數 422 閱讀 9783

public class mythreadwaitnotify implements runnable 

/*** 兩個房間,先進去的丟鑰匙給另乙個人,睡覺。另乙個人拿了鑰匙進去,把那個人喊醒,

* 那個人坐著不幹事情,自己做完事情出來再把鑰匙還給他,他再繼續執行下面

*/public void run() catch (interruptedexception e)

system.out.println(name+"執行緒接回鎖並繼續執行---------");

}} if(i==2)

system.out.println(name+"釋放鎖");

} }

public static void main(string args)

}

關於sychronized的使用

1.執行的前提 執行緒必須占有cpu 2.執行緒有資格競爭cpu的前提 執行緒是runnable狀態 0.搶鎖的前提是先搶cpu 1.搶鎖失敗 狀態從runnable 修改為 blocked 執行緒從就緒佇列移動到該鎖的阻塞佇列上 從開始請求鎖到最終搶到鎖,經歷了滄海桑田 放乙個陣列,長度為1000...

執行緒sychronized的坑

執行緒的理解定義 sychronized對方法鎖呼叫時候是對物件加鎖,這樣當執行緒再次使用物件的加鎖資源就不需要重新獲取鎖 1.sychronized對物件方法使用同步時,鎖定的是整個物件,但如果有其他執行緒在加鎖過程中執行了該物件的非同步方法或屬性,卻可以被其他執行緒同時執行。這點很奇怪.鎖定物件...

多執行緒(同步 通訊等)

生產者將產品交給店員,二消費者從店員處取走產品 店員持有的產品數量不超過20,如果超過20叫生產者停一下,少於20就繼續生產 如果店員持有的數量為0,讓消費者稍等下,一有產品就通知消費者 分析 是否有涉及到多執行緒?有,生產者和消費者 是否有涉及到共享資料?有,產品數量,別忘了執行緒安全 是否有涉及...