java synchronized keyword needed on primitive getter / setter method?

前端 未结 3 2006
攒了一身酷
攒了一身酷 2020-12-16 16:02

I read some java code, and found these functions:

synchronized void setConnected(boolean connected){
   this.connected = connected;
}

synchronized boolean i         


        
3条回答
  •  一生所求
    2020-12-16 16:32

    Synchronization is needed here to prevent memory consistency errors, see http://docs.oracle.com/javase/tutorial/essential/concurrency/memconsist.html. Though in this concrete case volatile would be much more efficient solution

    private volatile boolean connected;
    
    void setConnected(boolean connected){
       this.connected = connected;
    }
    
    boolean isConnected(){
       return connected;
    }
    

提交回复
热议问题