java線程問題:過山洞

##模擬多個人通過一個山洞:

1.這個山洞每次只能通過一個人,每個人通過山洞的時間爲3秒;

2.隨機生成10個人,同時準備過此山洞,並且定義一個變量用於記錄通過隧道的人數。顯示每次通過山洞人的姓名,和通過順序;

package cn.線程;
public class MyThread11_crossCave implements Runnable {

    private int crossNum = 0; //已通過的人數
    @Override
    public void run() {
        crossCave();
    }
    public synchronized void crossCave() {
        try {
            System.out.println(Thread.currentThread().getName() + "開始過山洞");
            Thread.sleep(3000); //通過山洞的時間爲3秒
            System.out.println("通過!!" + Thread.currentThread().getName() + "是第" + (++crossNum) + "個通過山洞的");
            Thread.sleep(1000);//兩個過山洞人之間時間間隙
            System.out.println();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

package cn.線程;
public class Dome11 {
    public static void main(String[] args) {
        MyThread11_crossCave m=new MyThread11_crossCave();
        for (int i = 0; i < 10; i++) {
           Thread t= new Thread(m,i+"號行人");
           t.start();
        }
    }
}

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