在多线程中,有一个经典问题:存票售票问题
如果只用两个Thread子类则容易陷入死循环。
有一个很好的解决办法就是synchronized。
方法一:在thread子类的run中直接通过synchronized来申请对象的锁旗标,即用synchronized把存售票代码框起来。
方法二:在票类中直接将方法在同步控制下执行,即在方法定义前加上synchronzide关键字。
例子:方法二:
public Synchronzied void put(){
System.out.printkn("Producer puts ticket"+(++number));
available=true;
}