<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                #### 簡介 ``` 1. 這是多個線程間的一種協作機制 2. 線程之間有競爭同樣也有協作 3. 一起完成某些任務時,在一個線程進行了規定操作后,就進入了等待狀態, 等待其他線程執行完成后將其喚醒(notify),如果多個線程在進行等待, 可以使用notifyall來喚醒所有等待的線程 ``` #### 三個方法 wait ``` 狀態: WAITING 線程不再活動,不再參與調度,進入 wait set 中,因此不會浪費 CPU 資源,也不會去競爭鎖了,這時 的線程狀態 即是 WAITING。它還要等著別的線程執行一個特別的動作,也即是“通知(notify)”在這個對象 上等待的線程從wait set 中 釋放出來,重新進入到調度隊列(ready queue)中 ``` notify ``` 通知對象的 wait set 中的一個線程釋放;例如,餐館有空位置后,等候就餐最久的顧客最先 入座。 ``` notifyAll ``` 通知對象的 wait set 上的全部線程釋放 ``` 注: ``` 等待線程被notify后,不一定會立即恢復執行,它需要再次嘗試獲取鎖 獲取鎖成功后: WAITING 狀態變成 RUNNABLE 狀態 沒有成功獲取鎖: WAITING 狀態又變成 BLOCKED 狀態 ``` ``` 1. wait方法與notify方法必須要由同一個鎖對象調用。因為:對應的鎖對象可以通過notify喚醒使用同一個鎖對 象調用的wait方法后的線程。 2. wait方法與notify方法是屬于Object類的方法的。因為:鎖對象可以是任意對象,而任意對象的所屬類都是繼 承了Object類的。 3. wait方法與notify方法必須要在同步代碼塊或者是同步函數中使用。因為:必須要通過鎖對象調用這2個方 法 ``` 備注: 等待喚醒機制其實就是經典的“生產者與消費者”的問題
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看