编写多线程程序,模拟多个人通过一个山洞

来源:互联网 发布:mac解压软件哪个好 编辑:程序博客网 时间:2024/05/01 21:22
要求:编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞,用随机值对应的字符串表示人名,打印输出每次通过山洞的人名。提示:利用线程同步机制,过山洞用一条输出语句表示,该输出语句打印输出当前过山洞的人名,每个人过山洞对应一个线程,哪个线程执行这条输出语句,就表示哪个人过山洞。
public class Test {        public static void main(String[] args) {          //创建p          pass p=new pass();          //创建并开启10个线程          new Thread(p,"曾诚").start();          new Thread(p,"冯潇霆").start();          new Thread(p,"姜至鹏").start();          new Thread(p,"于海").start();          new Thread(p,"任航").start();          new Thread(p,"武磊").start();          new Thread(p,"于大宝").start();          new Thread(p,"郑智").start();          new Thread(p,"郜林").start();          new Thread(p,"张稀哲").start();      }    }   class pass implements Runnable{             public  void run() {          //定义同步代码块(上锁)          synchronized(this) {           try {          //睡眠2s           Thread.sleep(2000);           }catch(InterruptedException e){               e.printStackTrace();           }           System.out.println(Thread.currentThread().getName()+"---正在通过山洞,请等待2s,");        }      }   }  

阅读全文
0 0