我对人们用来发布信息和更改跨多个线程共享的数据结构而不会丢失太多并发性的技术感兴趣。以我个人的经验,我经常遇到单个编写器/多个读取器,其中单个线程正在更新一个对象,但多个线程正在从对象中读取并且需要通知更改。
作为一个简单的例子,考虑一个哈希表(假设它是线程安全的,无论是通过粗粒度锁定、细粒度锁定还是低锁定技术等)。线程 1 负责从哈希表中放入和删除信息,但它是唯一的写入者。当任何键被更改、某个键被更改或任何变体时,其他线程可能希望得到通知。他们希望订阅什么并不是特别重要。
你会使用什么技术(我喜欢论文的建议)来确保线程接收及时和正确的更改信息?