gpt4 book ai didi

c++ - boost::dynamic_bitset 多线程问题

转载 作者:行者123 更新时间:2023-11-28 07:22:24 26 4
gpt4 key购买 nike

我使用 boost::dynamic_bitset 来跟踪多个 tcp 连接。如果已连接,则设置为1,否则设置为0。并且每个连接是一个线程。我是否需要保护位集不受多线程影响?还是没有必要,因为它在创建后不会修改位集的大小?

最佳答案

在位集中工作时,您实际操作单个位的情况非常少见。通常会发生以下情况:

  1. 加载 x 字节(x 取决于您的机器和实际实现)
  2. 操作这些字节中的特定位
  3. 将 x 个字节保存在位集的容器中。

这不是 boost::dynamic_bitset 特定的,它还涉及 std::bitset 等。在这种情况下,您应该始终查看文档。自 documentation没有提到明确的线程安全,您可能会遇到竞争条件。

所以你应该保护你的 bitset。

关于c++ - boost::dynamic_bitset 多线程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19219724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com