9

私はFindBugsのNaked通知警告を持っています。以下は私のコードです。

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

「これ」は「public class Controller extends Thread」です。警告を修正する方法?? 私はそれを知りません。

前もって感謝します。

4

1 に答える 1

10

ネイキッド通知警告は、notify() メソッドを使用することは、変更可能な状態が変化するのを待っている他のスレッドがあり、通知されるのを待っていることを意味します。しかし、同期ブロックは変更可能な状態を変更しなかったため、通知が必要になるのは奇妙に思えます。同期ブロック外のオブジェクトの状態を変更した場合、このデータを読み取っている別のスレッドが存在するため、このコードがスレッド セーフであるかどうかは疑わしいようです。

于 2011-03-19T05:31:36.853 に答える