Java多线程模拟多人过山洞(每次一人)

本文介绍了一个使用多线程模拟多人依次通过山洞的Java程序案例。通过创建一个Cave类和实现Runnable接口的Person类,演示了如何利用synchronized关键字确保同一时间只有一个线程(模拟一个人)能进入山洞,有效地实现了线程同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多线程模拟多人过山洞(每次一人)
package holiday2.day12;

/**
 * 多线程模拟多人过山洞(每次一人)
 */

public class TestCave {
    public static void main(String[] args) {
        Cave cave = new Cave();
        /*new Thread(new Person("a",cave)).start();
        new Thread(new Person("b",cave)).start();
        new Thread(new Person("c",cave)).start();
        new Thread(new Person("d",cave)).start();
        new Thread(new Person("e",cave)).start();
        new Thread(new Person("f",cave)).start();
        new Thread(new Person("g",cave)).start();
        new Thread(new Person("h",cave)).start();
        new Thread(new Person("i",cave)).start();
        new Thread(new Person("j",cave)).start();*/

        char name='a';
        for(int i=1; i<=10; i++){
            new Thread(new Person((name++)+"",cave)).start();
        }

    }
}
class Cave {
    int a=1;

}
class Person implements Runnable{
    Cave cave;
    private String name;

    public Person(String name,Cave cave) {
        this.name = name;
        this.cave = cave;
    }

    @Override
    public void run() {
        synchronized (cave){
            System.out.println("name:"+name+" No."+((cave.a)++));
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值