我使用 boost::dynamic_bitset 来跟踪几个 tcp 连接。如果已连接,则设置为1,否则设置为0。每个连接为一个线程。我是否需要保护位集免受多线程的影响?还是没有必要,因为它在创建后不会修改位集的大小?
问问题
626 次
在位集中工作时,您实际上操纵单个位是非常罕见的。通常会发生以下情况:
这不是boost::dynamic_bitset
具体的,它也涉及std::bitset
例如。在这种情况下,您应该始终查看文档。由于文档没有提到明确的线程安全,您可能会遇到竞争条件。
所以你应该保护你的bitset。