Java多執行緒對資源加鎖同步無效是何原因?

2021-09-01 03:53:52 字數 679 閱讀 6980

public class incrementanddecrement 

system.out.println("balance="+balance); }

/*** 遞增操作任務

* @author administrator

* */

private static class incrementtask implements runnable catch (interruptedexception e)

balance=newbalance;

}} }

/*** 遞減操作任務

*/private static class decrementtask implements runnable catch (interruptedexception e)

balance=newbalance;

}} }

}

程式想實現的效果是,對共享的資源(integer型別的balance)進行增加和減少的操作,增加和減少分別通過兩個執行緒任務來執行。在兩個執行緒任務類中,在進行增或者減的時候都是用了synchronized關鍵字對資源(balance)加鎖。但是執行的結果是並沒有實現同步。我很疑惑,不知道什麼原因。並且假如我將增減操作封裝到方法當中,並且這些方法是用synchronized描述,那麼執行的結果是同步的。y ?

JAVA多執行緒同步

1.同步 塊 synchronized 物件 例程 package cn.wf.thread1 多執行緒同步 同步 塊 author wf public class thread test class thread01 implements runnable trycatch interrupted...

java多執行緒 同步

2019獨角獸企業重金招聘python工程師標準 synchronized關鍵字鎖的物件可以是方法 變數 類和當前例項。synchronized不能被繼承,子類將自動去除synchronized關鍵字 public synchronized void 變為public void 方法public s...

java多執行緒值執行緒同步

在多執行緒的操作中,多個執行緒有可能同時處理同一資源,這就是多執行緒的共享資料。如下程式 public class threaddemo catch interruptedexception e catch interruptedexception e catch interruptedexcept...