網站首頁 美容小常識 享受生活 東方時尚 識真假 高奢 資訊 遊戲攻略 搞笑段子
當前位置:品位站 > 享受生活 > 心理

condition原理

欄目: 心理 / 發佈於: / 人氣:1.52W
condition原理

Condition持有多個FIFO的等待隊列,當前線程調用await方法時,那麼這當前線程就會釋放鎖,進入這個等待隊列的尾部進入等待狀態。

Condition擁有這個隊列的首節點(firstWaiter)和尾節點(lastWaiter).其實一個Lock(同步器)有一個同步隊列(準備去獲得鎖)以及多個等待隊列(本來已經有鎖,但是中途用了await方法),還記得之前討論的監視器麼,和這個很像,監視器只有一個同步隊列和一個等待隊列。

其實工作原理一樣的,沒有獲取鎖的線程在同步隊列等待鎖,獲得鎖後進入特殊的房間(資源),調用await之類的等待方法就把同步隊列的頭結點移到等待隊列的尾節點。當等待隊列裏面的節點被喚醒後,進入同步隊列拿鎖進入同步狀態。

Tags:condition