多線程按隊列執行數據

/**
     * 1、標記當前執行到的隊列順序
     */
    public static volatile Integer flag = 1;
    private Integer currentFlag = 1;
    private String name = null;
    public Test5(Integer currentFlag,String name) {
        this.currentFlag=currentFlag;
        this.name=name;
    }
    @Override
    public void run()
    {
        while(currentFlag != flag) {
        }
        System.out.println(name);
        flag++;
        
    }
    
    public synchronized void out(String outStr)
    {
        System.out.println(outStr);
    }

    public static void main(String[] args) {
        Thread t1 = new Thread(new Test5(1,"t1"));
        Thread t2 = new Thread(new Test5(2,"t2"));
        Thread t3 = new Thread(new Test5(3,"t3"));
        Thread t4 = new Thread(new Test5(4,"t4"));
        Thread t5 = new Thread(new Test5(5,"t5"));
        t1.start();t2.start();t3.start();t4.start();t5.start();
    }

 

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