ここで何が起こっているのかを理解しようとして多くの時間を失いましたが、私はついに何かに取り掛かっていると思います。
キャッシュをオンにするだけのかなり正常なPicoContainerコードがあります。これは、シングルトンの動作をもたらすと考えられていました。
container.as(Characteristics.CACHE).addComponent(Service.class, ServiceImpl.class);
しかし、今日私たちが見つけたように、明らかに1回ではなく、4回構築されているコンポーネントがあります。これは、自分のコンピューターで再現できるものではなく、他の開発者のマシンで再現できるものです。
さらに調査したところ、複数のスレッドがPicoContainerにアクセスして同じコンポーネントを同時に検索していたことが判明し、1つのコピーをインスタンス化して他の3つのスレッドを待機させる代わりに、4つのコピーをインスタンス化したように見えます(その後それらのうちの1つだけを保持することを覚えています。)
PicoContainerで真の特異な動作を取得するための比較的簡単な方法はありますか?