我使用boost :: dynamic_bitset来跟踪几个tcp连接。如果已连接,则将其设置为1,否则将其设置为0.并且每个连接都是一个线程。我是否需要保护多线程的位集?或者没有必要,因为它在创建后不会修改位集的大小?
答案 0 :(得分:1)
在bitset中工作时,实际操作单个位的情况非常罕见。通常会发生以下情况:
这不是boost::dynamic_bitset
特定的,例如也涉及std::bitset
。在这种情况下,您应该始终查看文档。由于documentation未提及明确的线程安全性,因此您可能会遇到竞争条件。
所以你应该保护你的位置。