接上一篇文章实现runnable接口来进行synchronized()后卖票的例子

第一个线程Thread1

public class Thread1 implements Runnable {
private int ticket = 10;// 定义总共有10 张票
public void run() {
for(int i=0;i<10;i++){
System.out.println("系统正在卖票");
sellticket();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void sellticket() {
synchronized (this) {
if (this.ticket > 0) {
this.ticket--;
System.out.println("卖出一张"+"还剩余火车票数为" + this.ticket);//在这里我曾试着看看能不能打印出主函数里哪个线程卖的票,不过还没有头绪
}else{
System.out.println("对不起,火车票卖光了");
}


}
}
}

主线程Test

public class Test {

public static void main(String[] args) {

Thread1 t= new Thread1();
   Thread t1=new Thread(t);//建立三个线程用于卖票
   Thread t2=new Thread(t);
   Thread t3=new Thread(t);
   t1.start();
   t2.start();
   t3.start();
}

}

测试结果为:

系统正在卖票
系统正在卖票
系统正在卖票
卖出一张还剩余火车票数为9
卖出一张还剩余火车票数为8
卖出一张还剩余火车票数为7
系统正在卖票
系统正在卖票
系统正在卖票
卖出一张还剩余火车票数为6
卖出一张还剩余火车票数为5
卖出一张还剩余火车票数为4
系统正在卖票
卖出一张还剩余火车票数为3
系统正在卖票
系统正在卖票
卖出一张还剩余火车票数为2
卖出一张还剩余火车票数为1
系统正在卖票
卖出一张还剩余火车票数为0
系统正在卖票
系统正在卖票
对不起,火车票卖光了
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了
系统正在卖票
对不起,火车票卖光了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值