Java中多線程問題

線程調度中的方法:線程

  1. sleep() 顧名思義線程休眠
    可傳遞連個參數-@毫秒 @納秒
  2. yield() 暫時掛起 
    這裏的線程會釋放資源,可是有一個坑是雖然是釋放資源可是是公平競爭資源 如:a線程釋放資源後,可能再次得到資源 ,並不存在把資源讓給另外一個線程
    這裏常常被誤用
  3. join() 俗稱加塞,即插入當前某個正在執行的某個線程裏的執行邏輯,暫停正在執行的邏輯,先執行插入的線程的邏輯,而後在執行後面的邏輯

同步問題Java的解決方案:對象

同步方法:資源

      synchronized 方法聲明{同步

        }yield

同步塊: 方法

     synchronized (資源對象){解決方案

          //須要進行同步的方法join

        }sync

注:當線程進入同步方法的時候,會獲取同步方法所屬的對象的鎖,一旦獲取對象的鎖,則其餘線程不能執行被鎖對象的其餘同步的方法。只有
在同步方法執行完畢釋放鎖後,其餘線程才能執行。synchronized

相關文章
相關標籤/搜索