我正在编写一个需要稳定性和高性能的多线程服务器应用程序。我正在考虑将Boost用于我需要的一些数据结构。
对于应该是线程安全的并且需要快速访问,插入等的东西来说,侵入式数据结构是更好还是更糟?::::?
答案 0 :(得分:3)
侵入式数据结构本身并不比非侵入式数据结构更好或更差。
最好的选择是不在线程之间共享数据。如果线程确实需要共享数据,那么第二个最佳选择是只读数据结构,因此不需要同步。
共享数据结构是线程之间的通信路径。因此,您需要仔细考虑直接共享数据结构是否是最佳通信方式。你需要什么数据结构?消息队列是否足够?您是否需要并发访问相同的数据,或者不同的线程访问数据结构的不同部分?
对于侵入式数据结构而言,没有什么比一般多线程使用的替代方案更好或更差。