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修饰 多线程调用时

* 达到互斥

*

* }

*/