package day11.thread;
/**
* 简单的售票程序。多个窗口同时售票。
* 注意给共同数据tick用static修饰,使其与创建的窗口无关。
* @author Administrator
*
*/
public class ThreadDemo3 {
public static void main(String[] args) {
Ticket t1 = new Ticket();
Ticket t2 = new Ticket();
Ticket t3 = new Ticket();
t1.start();
t2.start();
t3.start();
}
}
class Ticket extends Thread {
private static Object obj = new Object();
private static int tick = 100;
public void run() {
while(true) {
// synchronized(obj) {
if(tick > 0) {
System.out.println(this.getName() + " sale: " + tick--);
}
// }
}
}
}
没有注释的情况下售票情况是连续的售到第一张票,而有注释的情况下售票不是连续的为什么?(不考虑没有同步代码块而出现的安全问题) |