JAVA多執行緒變數的深入認識 二

2021-06-23 08:18:35 字數 1407 閱讀 8232

接下來,我們對類testinstance換一種訪問方式:    

例ii:    

(1)我們把類testinstance的兩個例項分別放在不同的執行緒當中    

public class forsynchronizedtwo     

}    

class runinstance implements runnable    

}    

(2)結果我們發現,兩個執行緒用的都是m1這個方法,因為這時flag是個區域性變數,它被建立了兩次,    

且並不會被執行緒互相訪問,但是count 則不然,它是全域性(嚴格說是static )變數,並且用了synchronized進行同步訪問。    

另外,請注意count = 2被列印兩次,是因為thread-0實行了 count++後,cpu等待thread-1實行 count++    

的結果。    

thread-0: m1's printing : count = 2    

thread-1: m1's printing : count = 2    

thread-0: m1's printing : count = 3    

thread-1: m1's printing : count = 4    

thread-0: m1's printing : count = 5    

thread-1: m1's printing : count = 6    

thread-0: m1's printing : count = 7    

thread-1: m1's printing : count = 8    

thread-0: m1's printing : count = 9    

thread-1: m1's printing : count = 10    

thread-0: m1's printing : count = 11    

thread-0: m1's printing : count = 13    

thread-1: m1's printing : count = 13    

thread-0: m1's printing : count = 14    

thread-1: m1's printing : count = 15    

thread-0: m1's printing : count = 16    

thread-1: m1's printing : count = 17    

thread-0: m1's printing : count = 18    

thread-1: m1's printing : count = 19    

thread-1: m1's printing : count = 20    

Java多執行緒的初步認識

在談執行緒之前,我們至少應該了解下程序是什麼,簡單來說,程序就是正在執行的應用程式,每乙個正在執行的應用程式就會對應乙個程序。那麼執行緒,就是依賴於程序而存在的,乙個程序可以開啟多個執行緒,由乙個物件所開啟的所有執行緒使用的是同乙份成員屬性。多執行緒的兩種方案 繼承thread類 實現runable...

Java多執行緒 多執行緒的初步認識理解以及入門使用

如下 繼承thread類 package com.demo public class threaddemo1 extends thread override public void run 實現runnable介面 當我們進行執行後就會發現,有時候run 方法中的執行的會比較晚,說明,在多執行緒中 ...

Java 多執行緒 二

執行緒安全問題 引出同步 塊 通過下面的例子,了解傳統多執行緒存在的執行緒安全隱患。需求 買票 四個視窗同時買票。class ticket implements runnable extends thread catch exception e system.out.println thread.c...