1. 所有对象都自动含有单一的锁,当一个线程在对象上调用其任意synchronzied方法的时候,此对象就会被加锁,这个时候如果调用对象的其他非synchronzied的方法,不受限制;但是其他线程如果想要调用该对象的synchronzied的方法,就需要等待前一个synchronized方法调用完成后释放了锁才能被调用。所以应对所有访问和修改共享资源的方法设置为synchronzied,漏掉一个该方法都有问题。 下面是一个简单的例子。所以定义了一个可以制作两种食物的餐厅类,foodA, foo ...

    阅读全文