java中每个对象都有一个与之关联的内部锁()这个锁是排他锁,保证了原子性,有序性。
使用的时候可以在代码块上,方法上。经常使用this当前对象作为锁对象,也可以用一个常量对象作为锁对象。锁对象不同就不能同步。无论在哪个地方上用synchronized,只要锁对象相同,就能同步。
同步线程出现异常,会让出该锁。
如何避免死锁:当需要多个锁时,所有线程的锁的顺序保持一致即可
java中每个对象都有一个与之关联的内部锁()这个锁是排他锁,保证了原子性,有序性。
使用的时候可以在代码块上,方法上。经常使用this当前对象作为锁对象,也可以用一个常量对象作为锁对象。锁对象不同就不能同步。无论在哪个地方上用synchronized,只要锁对象相同,就能同步。
同步线程出现异常,会让出该锁。
如何避免死锁:当需要多个锁时,所有线程的锁的顺序保持一致即可