工作中遇到的,NN_NAKED_NOTIFY,可能原因是你你锁的是同一个变量,但是FindBugs不能识别成是同一个变量,即使两个变量指向同一个地址,findbugs也为认为你是两个不一样的变量,举个例子吧
Object a = new Object();
Object b = a;
synchronized(a)
{
a.notifyAll();
}
synchronized(b)
{
b.wait();
}
这种情况虽然运行时不会报错,但是findbugs会报错
所以还是锁同一个,调用同一个对象的notifyAll()和wait()
Object a = new Object();
Object b = a;
synchronized(a)
{
a.notifyAll();
}
synchronized(a)
{
a.wait();
}
这样就不报FindBugs错误了
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/csm_qz/article/details/47089569