2017-10-14 127 views
0

为了防止他们接受相同类型使用identityHashCode命令同步在Java 8中仍然有效吗?

method(Clazz class1, Clazz class2) 

这可以通过两个线程在不同的顺序

method(a,b) 
method(b,a) 

此外,要防止造成问题相同参数来调用两个参数的方法僵局通过在参数顺序上订购锁定

synchronized (class1) { 
    synchronized (class2) { 
     } 
    } 

而是使用ob的identityHashCode结果排序锁在Java 8中仍然需要锁定一个有效的方法?

这在并发编程实践的书,仅仅是Java的6

+1

由于Java必须与现有代码向后兼容,为什么此方法突然在*有效?你问是否有更新的选择? –

+1

identityHashCode从来没有保证是唯一的,所以我不知道如何有效。 – user2357112

+0

一次总是建议重复检查锁定 – UserF40

回答

0

一句话描述 - 是的。 Java 8中仍然存在相同的原则。