2011-03-04 55 views
9

我有FindBugs的裸体通知警告。 以下是我的代码。如何解决FindBugs的裸体通知警告?

synchronized (this) { 
     this.notify(); 
    } 

“this”是“public class Controller extends Thread”。 如何解决警告?我不知道。

在此先感谢。

+0

它是不是告诉你实际的警告是什么? (你有没有考虑实现Runnable而不是扩展Thread?) – 2011-03-04 12:15:16

+0

只是不要使用线程来同步。上。更多关于使用线程来同步:http://stackoverflow.com/questions/5121173/java-threads-wait-and-notify-methods/5121267#5121267 – bestsss 2011-03-04 12:31:23

回答

9

裸通知警告意味着使用notify()方法意味着有一些其他线程正在等待某个可变状态发生更改,并且正在等待通知。但是你的同步块没有修改任何可变状态,所以你会需要通知,这似乎很奇怪。如果修改了同步块之外的对象的状态,那么似乎可疑的是,此代码是线程安全的,因为还有另一个线程正在读取此数据。