接下來,我們對類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...