编写一个火车票买票程序--3个窗口同时售票

 /*

  实现Runnable接口 创建Thread类 共享一个数据

  编写一个 火车站卖票程序--3个窗口同时卖票

  */

  class PPimplements Runnable{ //实现了一个Runnable接口的类PP

  public inttickets=100; //共同拥有100张票

  String str=newString("123"); //创建String对象 把局部名字传进同步参数里

  public void run(){

  while(true){ //当条件为真

  synchronized(this.str){//(同步的参数必须是一个对象的名字)

  //当tt线程判断条件为真,把str锁上,执行内部的代码,当内部代码没有执行完,CPU有可能会被其他线程抢去,但是当判断同步有锁

  //它就会在外面等着,进不来,保证了只有一个线程在内部执行,直到tt把内部代码执行完退出之后,会在次跟tt1在同一起跑线上抢占CPU的执行权

  if(tickets>0){

  System.out.println(Thread.currentThread().getName()+"卖出去的票数是:"+tickets);

  tickets--;

  }

  else

  {

  break;

  }

  }

  }

  }

  }

  public classThreade_14 {

  public static voidmain(String[] args) {

  PP pp =new PP();

  Thread tt1=newThread(pp); //构造Thread对象 实现Runnable类PP

  Thread tt2=newThread(pp);

  Thread tt3=newThread(pp);

  tt1.start(); //开启线程

  tt2.start();

  tt3.start();

  }

  }

   

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值