分类：电脑/网络-程序设计-JAVA相关
问题：java线程释放锁的问题classTestThreadimple 
class TestThread implements runnae{  Object o1 = new Object(), o2 = new Object();  public void run() {    synchronized(o1) {...}    synchronized(o2) {...}  }}o1和o2是两个对象，请问o1和o2的锁是在该线程全部结束后释放，还是结束o1{}块里的语句，就先释放o1的锁，然后结束o2后在释放o2的锁？
回答：你这样写锁的并不是TestThread的对象，而是分别锁o1和o2。
synchronized(o1) {...}结束后，o1的锁解开；
synchronized(o2) {...}结束后，o2的锁解开。
然后该线程结束。