抢票_多线程

主要通过多线程来完成抢票系统

 

package org.jsoft.thread;
public class buy {
        public static void main(String[] args) {
            Mp mp=new Mp();//创建Mp类的对象
            Thread t1 = new Thread(mp, "黄牛1");
            Thread t2 = new Thread(mp, "黄牛2");
            Thread t3 = new Thread(mp, "黄牛3");//实例化 三个黄牛
            t1.start();
            t2.start();
            t3.start();//调用t1-t3
        }
    }

 class Mp implements Runnable {//创建Mp类,实现了Runnable接口
     
    private int num = 0; // 定义出票数  (私有化的  封装的)
    private int num1 = 50; // 定义剩余票数
    boolean flag = false;//声明了一个bool型的变量
    @Override
    public void run() {//run方法
        while (true) {
            synchronized (this) {//同步线程
                if (num1 <= 0) {
                    break;//票没了,跳出循环
                }
                num++;//出票数依次增加
                num1--;//剩余票数依次减少
                try {
                    Thread.sleep(500);// 网络延时0.5s
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }//捕获异常,有错执行catch
                System.out.println("抢票结果:"+Thread.currentThread().getName()+"抢到第"+num+"张票,剩余"+num1+"张票");
            }
        }
    }
}

204318_ut7T_3731570.png

转载于:https://my.oschina.net/u/3731570/blog/1787999

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值