題目如下:
設計4個線程,其中兩個線程每次對j增加1,另外兩個線程對j每次減少1。
如果每個線程執行的代碼相同 ,可以使用同一個runnable對象,這樣在不同的線程中只需要把這個runnable對象傳到裏面去即可,因爲runnable對象的run方法天熱原子性,不可能run方法被打斷,一個run方法執行完後可能會切換到另一個線程的run方法 ,所以可以實現線程同步,例如買票程序火車票這樣的程序可以這樣設計
這是賣票程序的例子
接下來說如果要實現的線程代碼不同,比如上面的題目 有的要加有的要減,這個時候我們需要有兩個runnable對象,在run方法裏面對同一個對象執行不同的操作 如下
如上所示 我們的數據對象只有一個data1,但是我們的runnable對象有兩個,操作同一個對象,一個對它加一個對它減