84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
我抽象了一个连接管理类, ConnectionManager, 主题类TopicManager,可能还有更多.
就拿这个TopicManager来说, 我的程序主要就是用发布订阅的模式实现通讯, 也就是TopicManager的访问读取会非常频繁. 因为是单例的, 我肯定要做线程同步处理, 这样在多线程下对性能的影响有多大了?
相比之下, 我如果取消TopicManager这个类, 直接对数据库操作, 通过c3p0连接池, 以上两种方法相比, 哪种开销更大.
多谢各位.
シングルトンとマルチスレッドはまったく関連のない分野ですが、シングルトンはオブジェクトの制御の問題を解決し、マルチスレッドはマルチコア プロセッサの機能を最大限に活用するという問題を解決します。 データ共有が発生する場合にのみシングルトンを同期する必要があるという意味ではありません。したがって、シングルトンを使用しない場合でも、同じ方法で同期する必要があります。シングルトンを使用する場合でも、リソース共有が発生しない場合は同期は必要ありません。
実際的な例: ここでシングルトンがありますが、シングルトン メソッドは静的オブジェクトを使用しません。つまり、リソース共有がないため、同期は必要ありません。
個人的な理解: マルチスレッドを考慮する場合は、シングルトンをロックする必要があり、ビジネスの状況によっては、threadLocal の使用を検討することもできます。
単一のケースは読み取り専用です。 。影響はありません。 。
シングルトンとマルチスレッドはまったく関連のない分野ですが、シングルトンはオブジェクトの制御の問題を解決し、マルチスレッドはマルチコア プロセッサの機能を最大限に活用するという問題を解決します。
データ共有が発生する場合にのみシングルトンを同期する必要があるという意味ではありません。したがって、シングルトンを使用しない場合でも、同じ方法で同期する必要があります。シングルトンを使用する場合でも、リソース共有が発生しない場合は同期は必要ありません。
実際的な例:
ここでシングルトンがありますが、シングルトン メソッドは静的オブジェクトを使用しません。つまり、リソース共有がないため、同期は必要ありません。
個人的な理解: マルチスレッドを考慮する場合は、シングルトンをロックする必要があり、ビジネスの状況によっては、threadLocal の使用を検討することもできます。
単一のケースは読み取り専用です。 。影響はありません。 。