package com.app.thread;
/**
* 卖票线程
*
* @author author
*
*/
public class TicketThread implements Runnable {
// 票的总数
public int ticketSum;
public TicketThread(int ticketSum) {
this.ticketSum = ticketSum;
}
public void run() {
while (true) { // 无限卖票
synchronized (this) { // 使用同步代码块
if (ticketSum > 0) {
System.out.println(Thread.currentThread().getName()
+ "==ticketSum:" + ticketSum--);
} else {
break;
}
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
TicketThread a = new TicketThread(100);
new Thread(a).start();
new Thread(a).start();
new Thread(a).start();
}
}
在线程学习中,售票线程是一个很经典的小例子,虽然简单,但是也是可以让我们学会不少东西。