私が行ったいくつかの職場で見た設計上の問題ですが、満足のいく解決策はありません。
動的な数のスレッドを持つシステムがあるとします。
各スレッドは一連の「シングルトン」にアクセスできる必要があります。シングルトンはスレッドごとに 1 つのインスタンスしか持ちません (したがって、それらは実際のシングルトンではなく、スレッドごとのシングルトンです)。
このシングルトンのセットは、コンパイル時に認識されます。
各シングルトンにはデフォルトのコンストラクターがあります (物事を単純化するために、この制約を持たないソリューションが優れています)
満足のいく解決策には、次のものが必要です。
各スレッドは o(1) 時間でそのシングルトンのいずれかにアクセスできます
シングルトンへのアクセスはロックフリーです
「シングルトン セット」にシングルトンを追加しても、セット側で新しいコードを記述する必要はありません
「シングルトン セット」はコンパイル時に設定されます
そのような設計が実現可能かどうかはわかりません。もしそうなら、メタプログラミングが少し必要だと思います。
ご意見をお寄せいただきありがとうございます。