Java執行緒學習 資料是否共享和執行緒同步

2021-09-01 23:57:43 字數 906 閱讀 4815

public class a extends thread 

@override

public void run()

}}

public class b 

}

1.每個執行緒都有乙個自己的count變數,自己減少自己的值,不受其他執行緒影響;

2.資料是不共享的;

表示多個執行緒可以訪問同乙個變數,常用的:投票;

public class a extends thread

}

package sharedatas;

public class b

}

或者

但是從第一種情況可以看出有相同情況,表明a和b同時對變數進行了處理,產生了「非執行緒安全」(即多個執行緒對同乙個變數進行了修改操作,但是值不同統一的現象)——

public class a extends thread

}

執行結果:

總結:1.synchronized關鍵字載入方法最前面;

2.作用是:使執行緒呼叫run方法時,要排隊,也就是說乙個執行緒正在或者還未徹底結束這個執行緒前,run方法不可以被其他執行緒使用;

3.synchronized關鍵字原來:在執行run方法前先判斷run方法是否上鎖了,如果上鎖了,那麼就等待排隊,直到其他執行緒執行完成run方法;該關鍵字可以在任意的方法和物件上鎖,而加上鎖的這段**叫「臨界區」或「互斥區」。

3.場景:銷售員賣出乙個物品時,不可以出現相同的剩餘數量等;

其他:1.執行緒不一定要執行完run方法的,它可能執行到run方法中某一條**就中斷了,執行另乙個執行緒了,而中斷的執行緒又得重新排隊,從中斷的地方開始執行。

Java中線程共享資料

1 採用runnable介面 採用runnable介面 實現共享資料的鎖 synchronized 輸出結果 老公取10元,剩餘90 老公取10元,剩餘80 老公取10元,剩餘70 老公取10元,剩餘60 老公取10元,剩餘50 老婆取10元,剩餘40 老婆取10元,剩餘30 老婆取10元,剩餘20...

Java中線程共享資料

1 採用runnable介面 採用runnable介面 實現共享資料的鎖 synchronized 輸出結果 老公取10元,剩餘90 老公取10元,剩餘80 老公取10元,剩餘70 老公取10元,剩餘60 老公取10元,剩餘50 老婆取10元,剩餘40 老婆取10元,剩餘30 老婆取10元,剩餘20...

Java 多執行緒學習筆記 4 多執行緒共享資料

我們經常說某個變數是執行緒非安全的,某個變數是執行緒安全,這裡 是否安全 針對的是類的例項變數,如果是方法內部的私有變數,不會存在這個問題 package smaug.cloud.provider.thread.t7 created by naonao on 17 12 10.public clas...