我正在编写一个要求稳定性和高性能的多线程服务器应用程序。我正在为某些需要的数据结构使用Boost。
对于应该是线程安全的并且需要快速访问,插入等操作的东西,介入数据结构是好是坏?
最佳答案
侵入性数据结构在本质上并不比非侵入性数据结构好或坏。
最好的选择是不要在线程之间共享数据。如果线程确实需要共享数据,则第二好的选择是只读数据结构,因此不需要同步。
共享数据结构是线程之间的通信路径。因此,您需要仔细考虑是否拥有直接共享的数据结构是最好的通信方式。您需要什么数据结构?消息队列就足够了吗?您是否需要并发访问同一数据,还是不同的线程访问数据结构的不同部分?
一般而言,介入数据结构不会使它们变得比多线程替代方法更好或更糟。