私は外部APIのクラスを持っており、そのインスタンスを作成してそのスレッドのメソッドに別のスレッドからアクセスしたいと考えています。私の質問は、次のコードのコメントのようです:外部APIオブジェクトを持つjavaのスレッドセーフ
import java.util.concurrent.Executors;
public class ThreadSafetyQuestion {
static class ExternalAPIObject {
void method(){
}
}
private static volatile ExternalAPIObject obj;
static synchronized ExternalAPIObject syncGetObject(){
return obj;
}
public static void main(String[] args) {
Executors.newSingleThreadExecutor().submit(()-> {
ThreadSafetyQuestion.syncGetObject().method();//Is this thread safe?
ExternalAPIObject externalAPIObject = ThreadSafetyQuestion.syncGetObject();
//do some other stuff
externalAPIObject.method();//I doubt this is thread safe. How can I access this method from multiple threads in a safe way?
});
}
}
ExternalAPIObjectの個々のメソッドを同期ラッパーメソッドでラップする必要があると言っていますか?うーん、私はあなたのアドバイスを受け取り、トピックについてもう少し詳しく研究します。 – dQw4w9WyXcQ