package sellticket;
class ticket implements Runnable {
private int tickets = 100;
Object c = new Object();
@Override
public void run() {
while (true) {
synchronized (c) { // 代码锁,使得线程无法同时访问此if语句
if (tickets > 0) {
try {
Thread.sleep(100); //由于网络的原因提供100毫秒的延迟
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "正在出售第" + (tickets--) + "张票。");
} else
break;
}
}
}
}
public class SellTicket {
public static void main(String[] args) {
ticket s1 = new ticket(); //创建一个票务资源,使之实现Runnable接口进而可以被多线程操作
Thread t1 = new Thread(s1, "窗口一");
Thread t2 = new Thread(s1, "窗口二");
Thread t3 = new Thread(s1, "窗口三");
t1.start();
t2.start();
t3.start();
}
}