06 初识并发问题

package ThreadDemo;
//多个线程同时操作同一个对象,涉及到资源的独享与共享并发什么的
// 多个线程同时操作同一个对象,可能会出现问题:线程不安全,数据紊乱    ------>上锁
// 并发与同步
  // 火车票例子
public class Test06 implements Runnable{
    int ticketNums=10;
    @Override
    public void run() {
        while (true){
            if (ticketNums==0){ break;}
            try {
                Thread.sleep(200);    // 模拟延迟
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            System.out.println(Thread.currentThread().getName()+"--->抢到了第"+ ticketNums-- +"张票");
            // Thread.currentThread().getName() :获得线程体的名字
        }
    }

    public static void main(String[] args) {
        // 多个线程同时操作同一个对象,可能会出现问题------>上锁
        Test06 ticket = new Test06();
        new Thread(ticket,"学生").start();  // 名为 学生线程体
        new Thread(ticket,"老师").start();  // 老师线程体
        new Thread(ticket,"黄牛").start();  // 黄牛线程体
    }
}
posted @   被占用的小海海  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示