package sync;
public class Ticket implements Runnable {
private int ticket = 100;
private Object lock = new Object();
@Override
public void run() {
while (true) {
// synchronized (任意对象):对象是唯一的
synchronized (lock){
if (ticket <= 0) {
break;
} else {
// try {
// Thread.sleep(1000);
// } catch (InterruptedException e) {
//
// }
ticket--;
System.out.println(Thread.currentThread().getName() + "在买票,还剩" + ticket + "票");
}
}
}
}
}
package sync;
public class SyncDemo {
public static void main(String[] args) {
Ticket ti = new Ticket();
Thread tr1 = new Thread(ti);
Thread tr2 = new Thread(ti);
Thread tr3 = new Thread(ti);
tr1.setName("老王");
tr2.setName("老李");
tr3.setName("老张");
tr1.start();
tr2.start();
tr3.start();
}
}