静的メソッドへの入力がメソッドの戻り値を取得するために使用される唯一の項目になる静的メソッドの使用を考えています。私のアプリケーションは複数のスレッドを使用します。私の質問は次のとおりです。メソッドのロックを同期/使用する必要がありますか(または、使用されている変数が揮発性/アトミックロングなどであることを確認します)、またはメソッドが静的であり、メソッドがメソッドへの入力のみを使用しているためです。出力を取得します (他のオブジェクトにはアクセスしません)。
2 に答える
7
static
とスレッドセーフは直交する概念であるため、一般的な答えはコードに依存するということです。
于 2013-11-03T20:06:07.627 に答える
-1
static
変数/オブジェクトのコピーは 1 つだけ存在します。重要なのは、メソッドが何を操作するかです。
メソッドが a をstatic
変更するVector
と、同期の必要はないとします。を変更している場合は、ArrayList
同期が必要です。
カスタム クラスのオブジェクトである場合は、同期が必要です。
スレッドセーフについてもっと読みたいと思うかもしれません =)
于 2013-11-03T20:06:32.443 に答える