package example_SellTicket;
/*
* //修饰方法 默认锁定当前对象 不让别人卖了
* 有问题
*/
class A2 implements Runnable {
public static int ticket = 100;
String str = "我来是实现同步";
public synchronized void run() {//修饰方法 默认锁定当前对象 不让别人卖了
while (true) {
if (ticket > 0) {
System.out.println(Thread.currentThread().getName() + "正在买出第" + ticket + "张票");
ticket--;
} else {
break;
}
}
}
}
public class TicketTest4 {
public static void main(String[] args) {
A2 a = new A2();
Thread t1 = new Thread(a);
t1.start();
Thread t2 = new Thread(a);
t2.start();
}
}
/*
* synchronized (mutex) { API给你一个方法 说此方法是线程同步的,其实是说 此方法被synchronized修饰 多线程调用时
* 达到互斥
*
* }
*/