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

来源:互联网 发布:免费听小说的软件 编辑:程序博客网 时间:2024/05/02 00:10

编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞,用随机值对应的字符串表示人名,打印输出每次通过山洞的人名。提示:利用线程同步机制,过山洞用一条输出语句表示,该输出语句打印输出当前过山洞的人名,每个人过山洞对应一个线程,哪个线程执行这条输出语句,就表示哪个人过山洞。

public class gsd {public static void main(String []args){Shandong sd = new Shandong();    Thread t1 = new Thread(sd, "赵");    Thread t2 = new Thread(sd, "钱");    Thread t3 = new Thread(sd, "孙");    Thread t4 = new Thread(sd, "李");    Thread t5 = new Thread(sd, "周");    Thread t6 = new Thread(sd, "吴");    Thread t7 = new Thread(sd, "郑");    Thread t8 = new Thread(sd, "王");    Thread t9 = new Thread(sd, "刘");    Thread t10 = new Thread(sd, "张");    t1.start();    t2.start();    t3.start();    t4.start();    t5.start();    t6.start();    t7.start();    t8.start();    t9.start();    t10.start();}}class Shandong extends Thread{public void run() {synchronized(this){        System.out.println(Thread.currentThread().getName()+"正在通过山洞;");        try {            sleep(2000);        } catch (InterruptedException e) {            e.printStackTrace();        }    }}}


阅读全文
0 0
原创粉丝点击