1.首先你并没有使用class myLooc中的静态属性 obj1, obj2 你在if语句和else语句中用的锁都 是class Test 的非静态属性 obj1 ,obj2
2. (1) if语句中的锁obj1和else语句中的锁0bj1不是同一把锁, (2) if语句中的锁obj2和else语句中的锁0bj2也不是同一把锁 ,也就是你使用了4把锁
3. 你在主方法中创建了Test类的两个对象,创建两个线程,每个线程只执行指定的代码,这一点没错,但是你使用的判断条件是不同的Test对象,
4,建议:给线程起个名字,根据名字来判断那个线程执行if语句,而在new线程时装入的Test对象只有一个 |