「スレッドセーフ」ではない他のクラスやメソッド(サードパーティ)をラップするクラスを作成する必要があります。私は実際にシングルスレッドのクラス/メソッドを作成したいと思っています。
これはそれを行う必要があります:
public class SomeClass {
public static synchronized void performTask(int val) {
//interesting non-thread safe code...
ThisClass thisclass = new ThisClass();
thisclass.dostuff();
ThatClass thatclass = new ThatClass();
thatclass.dootherstuff();
HisClass hisclass = new HisClass();
hisclass.notsure();
}
同期される1つの静的メソッドを持つ1つの静的クラス。したがって、複数のオブジェクトがこのクラスを使用/呼び出している場合。彼らは「インライン」で待たなければなりません。負荷が大きいとパフォーマンスが低下します。
public class MyClass {
public void mytask() {
//interesting code
SomeClass.performTask(myval); // will wait if some other code block is in SomeClass.performTask?
}