0

Javaのシングルトンクラスは、一度だけ初期化でき、すべてのクラスが同じオブジェクトを使用するクラスを意味します。すべてのユーザーに対して 1 つのオブジェクトのみが作成されます。しかし、私の質問は、同じオブジェクトを同時に初期化するために複数のスレッドが存在する場合、そこで何が起こるのでしょうか? 2つ以上のオブジェクトがありますか?どうすればこれを制限できますか?

4

1 に答える 1

2

しかし、私の質問は、同じオブジェクトを同時に初期化するために複数のスレッドが存在する場合、そこで何が起こるのでしょうか? 2つ以上のオブジェクトがありますか?どうすればこれを制限できますか?

それを達成するための複数の方法:

  1. 同期を使用して、マルチスレッド環境でシングルトン クラスの複数のオブジェクトの作成を制御できます。

  2. 静的ブロックを使用したクラスのロード中のシングルトン オブジェクトの作成。

Wiki には、マルチスレッド環境も考慮した優れた方法で Singleton クラスを記述する方法が記載されています。

http://en.wikipedia.org/wiki/Singleton_pattern

于 2013-11-09T09:31:09.140 に答える