多线程---模拟多人通过山洞

时间:2022-12-29 18:23:52
* 编写多线程应用程序,模拟多个人通过山洞。这个山洞每次只能通过一个人,每个人
 * 通过山洞的时间为5秒,随机生成10个人,名字分别是"ONE"~"TEN",同时准备过此山洞,
 * 显示一下每次通过山洞人的姓名。
 * 提示:1.获取当前线程名字可用Thread.currentThread().getName()方法
 *     2.输出结果应该是乱序的*/

public class Pass implements Runnable{  
    private Object lock=new Object();  
    public void run(){  
        synchronized(lock){  
            System.out.println(Thread.currentThread().getName());  
            try{  
                Thread.sleep(1000);  
            }catch(InterruptedException e){  
                e.printStackTrace();  
            }  
        }  
    }  
      
    public static void main(String[] args){  
        Pass p=new Pass();  
        new Thread(p,"ONE").start();  
        new Thread(p,"TWO").start();  
        new Thread(p,"THREE").start();  
        new Thread(p,"FOUR").start();  
        new Thread(p,"FIVE").start();  
        new Thread(p,"SIX").start();  
        new Thread(p,"SEVEN").start();  
        new Thread(p,"EIGHT").start();
        new Thread(p,"NINE").start();
        new Thread(p,"TEN").start();
        
    }  
}