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

编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为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();
        }
    }
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百无聊赖Zy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值