1. 程式人生 > >設計 4 個線程,其中兩個線程每次對 j 增加 1,另外兩個線程對 j 每次減少 1。寫出程序。

設計 4 個線程,其中兩個線程每次對 j 增加 1,另外兩個線程對 j 每次減少 1。寫出程序。

logs ati static run ride test ide err div

先設計一個類處理加減這一行為:

public class ManyThread {

    private int j = 0;
    
    public synchronized void inc(){
        j++;
        System.out.println(Thread.currentThread().getName() + "inc" + j);
    }
    
    public synchronized void dec(){
        j--;
        System.out.println(Thread.currentThread().getName() 
+ "dec" + j); } }

然後進行調用

public class MyTest {

    private ManyThread manyThread = new ManyThread();
    
    public static void main(String[] args) {
        
        MyTest myTest = new MyTest();
        myTest.test();

    }

    public void test() {
        for(int i = 0; i < 2;i++){
            
new Thread(new Runnable() { @Override public void run() { for (int i = 0;i < 20;i++){ manyThread.inc(); } } }).start(); new Thread(new
Runnable(){ @Override public void run() { for(int i = 0;i < 20;i++){ manyThread.dec(); } } }).start(); } } }

設計 4 個線程,其中兩個線程每次對 j 增加 1,另外兩個線程對 j 每次減少 1。寫出程序。