私は静的メソッドjava.lang.Math.max(int a, int b)
がスレッドセーフであるかどうか疑問に思っていますか?java.lang.Math.max(int a、int b)はスレッドセーフですか?
スレッドセーフでない場合は、複数のスレッドに同時にアクセスするために、コードを使用してこのメソッドの出力が間違っている状況を説明できますか?
私は静的メソッドjava.lang.Math.max(int a, int b)
がスレッドセーフであるかどうか疑問に思っていますか?java.lang.Math.max(int a、int b)はスレッドセーフですか?
スレッドセーフでない場合は、複数のスレッドに同時にアクセスするために、コードを使用してこのメソッドの出力が間違っている状況を説明できますか?
あなたが唯一の少なくとも一つのスレッドが状態を変更する共有状態の同時アクセスからスレッド安全性の問題を取得します。
Math.max(a, b)
には、スレッドセーフな状態、共有などはありません。
あなたは「州」とまったく同じ意味ですか?あなたは静的な方法を意味しますか?その後、すべての静的メソッドはスレッドセーフになりますか? :-) – siva636
州によって、私はある州から別の州に変わることができるものを意味します。例えばc = 0、それ以降はc = 5です。Javaの場合、変更されるフィールドが必要です。 –
またはデータベースクエリ、またはファイルシステムアクセス。それも国家としてカウントされます。 –
スレッドセーフで、なぜそうではありませんか?状態はなく、呼び出すときにオブジェクトが変更されることはありません。この方法は、ちょうどif文です:
public static int max(int a, int b) {
return (a >= b) ? a : b;
}
"状態"とはどういう意味ですか?あなたは静的な方法を意味しますか?その後、すべての静的メソッドはスレッドセーフになりますか? :-) – siva636
あなたは受け入れられた回答なしで30以上の質問があります。答えることができる質問をするための+1。 –
@ PeterLawreyしかし、本当の質問ではないので、-1。 – EJP