1. 程式人生 > >執行緒安全問題出現 的根本原因和解決方案

執行緒安全問題出現 的根本原因和解決方案

執行緒安全問題出現的根本原因:
    1. 必須要存在兩個或者兩個以上的執行緒共享著一個資源。
    2. 操作共享資源的程式碼必須有兩句或者兩句以上。



    1. 同步程式碼塊
        synchronized(鎖){
            需要被同步的程式碼
        }
              
    2. 同步函式。  
        修飾符 synchronized 返回值型別   函式名(形參列表..){

        }
    注意:
        1. 同步程式碼塊的鎖可以是任意的物件。 同步函式的鎖是固定 的,非靜態函式的鎖物件是this物件。 靜態函式的鎖物件是class物件。
        2. 鎖物件必須是多執行緒共享的物件,否則鎖不住。
        3. 在同步程式碼塊或者是同步函式中呼叫sleep方法是不會釋放鎖物件的,如果是呼叫了wait方法是會釋放鎖物件的。