私は TestNG を使用してテストを並行して実行していますが、ヘルパー クラスとユーティリティで発生する可能性のある同期の問題に注意したいと考えています。私の知る限り、各テストは、テスト ランナーによって透過的に作成された独自のオブジェクトです。したがって、非静的なものの同期について心配する必要はありません。これは、スレッドで作成されたオブジェクトであり、他のオブジェクトからは見えないためです。
しかし、私が書いたこの外部ログ関数を呼び出す場合、同期する必要がありますか? thread-1 が入力して threadName="Thread-1" を設定し、次に thread-2 が入力して SAME threadName 変数 = "Thread-2" を設定し、次に thread-1 がバックアップを取得して出力する競合状態が発生する可能性はありますか? "--foo | スレッド 2"? これを同期メソッドにする必要がありますか?
public static void log(String _message) {
String threadName = Thread.currentThread().getName();
log.println("--" + _message + " | Thread: " + threadName);
}