##模擬多個人通過一個山洞:
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();
}
}
}