0

複数のメソッドを持つクラスを作成しましたが、このクラスは、インスタンス変数を持たないシングルトンの動作やクラスのように、いつでも単一のインスタンスしか持つことができません。

今、私は、単一のメソッドへの複数の呼び出しが期待される結果をもたらすかどうか、メソッドが複数のスレッドによって影響を受けるパラメータのみを持っている場合、混乱していますか?
Bcoz メモリが割り当てられると、メソッドはスタックにあり、同時にスレッドがメソッドを呼び出します。結果はどうなりますか?

4

1 に答える 1

5

各スレッドには、独自の独立したプライベート スタックがあります。スレッドがメソッドに入ると、すべてのパラメーターとローカル変数がそのスレッドのローカル スタックにあり、他のスレッドはそれにアクセスできません。

したがって、2 つのスレッドが同じメソッドに入るが、このメソッドがそのパラメーターとそのローカル変数にのみアクセスする場合 (およびパラメーターが 2 つのスレッドで同じオブジェクトを指していない場合)、一方のスレッドの実行が他方のスレッドに干渉する可能性はありません。スレッド実行。これは、2 つの独立した Java プロセスのようなものです。

于 2013-04-03T05:36:07.843 に答える