私は、Singleton Java EE 6 beanで長続きするメソッドを持っています。Java EEシングルトンがビジーであるかどうかを確認する方法は?
シングルトンが現在ビジー状態であるかどうかを「外部から」見ることができますか?
私は、Singleton Java EE 6 beanで長続きするメソッドを持っています。Java EEシングルトンがビジーであるかどうかを確認する方法は?
シングルトンが現在ビジー状態であるかどうかを「外部から」見ることができますか?
このメソッド内では、メソッドが実行中であることを示すためにオブジェクト属性(フラグ)を変更できます。
外部から、object.getBusyFlag()を使用して決定することができます。
しかし、メソッドをスレッドセーフにしようとする場合は、をというキーワードで同期させることが考えられます。
ケントが正しい。さらに、 'flag'がブール値の場合、 'volatile'と宣言して 'synchronized'を使用しないでください。
シングルトンであるため、メソッド実行時にBeanがロックされます。 getBusyFlag()はmainメソッドが終了した後に実行されます。 –
ロックの問題を回避するために関数の代わりに静的変数 "busy"を使用しました。それを修正するためにBeanが管理する同時実行性を使用することもできます。ご回答有難うございます! –