1、變量J增減線程管理實現

編程題目:

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

示例代碼:

package program.thread.exercise01;

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

public class JThreadManager {
    public static void main(String[] args) {

        JManager jm = new JManager(); //創建實例對象

        for(int i=0;i<2;i++){ //設計4個線程
            //匿名內部類 
            new Thread(
                new Runnable(){ 
                    public void run(){
                        for(int i=0;i<5;i++){ 
                            jm.increase(); 
                        } 
                    }
                }
            ).start();

            new Thread(
                new Runnable(){ 
                    public void run(){
                        for(int i=0;i<5;i++){ 
                            jm.decrease(); 
                        } 
                    }
                }
            ).start();
        }

    }
}

//創建J管理類
class JManager {

    private int j;

    //每次對j增加1,注意:方法要同步
    public synchronized void increase(){

        j++;
        System.out.println(Thread.currentThread().getName()+"-increase:"+j);

    }

    //每次對j減少1
    public synchronized void decrease(){

        j--;
        System.out.println(Thread.currentThread().getName()+"-decrease:"+j);

    }

}

結果顯示:

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章