package com.rongda.hellothread;
/**
* 默写
* 模拟抢票
* 由三个线程取抢票
*
*/
public class Demo12 {
public static void main(String[] args) {
// TODO Auto-generated method stub
TicketSell ticketSell = new TicketSell(); //实例化抢票对象
for(int i=0;i<3;i++){
//创建3个线程去抢票
new Thread(ticketSell).start();
}
}
public static class TicketSell implements Runnable{
private int ticket = 50; //总共50张票
@Override
public void run() { //实现Runnable接口的方法
while(true){ //循环实现抢票
synchronized(this){ //同步锁代码块
if(this.ticket>0){ //判断票数还有多
try {
Thread.sleep(100); //休息100毫秒
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+":"+(--this.ticket)); //打印的同时 票数减1
}else{
break; //无票则退出循环
}
}
}
}
}
}
java多线程模拟抢票
最新推荐文章于 2024-07-10 02:57:27 发布