c++ - 可以安全共享指针数据的多线程库?

标签 c++ c windows multithreading

基本上我想要实现的是在不同线程之间共享一个动态分配的状态标志数组,以控制线程之间的交互。

是否有任何库可以在 Windows 操作系统中完美地实现这一点?

我尝试了 Open MP,它给我带来了各种奇怪的错误和很多头痛,即使使用 omp flush all 有时数据仍然不是最新的,当访问频率很高时,volatile 指针也无济于事,所以程序变得非常不稳定和不一致。

是否有任何库可以更好地处理共享和经常更新和访问的数据数组(动态)? TBB 能处理这种情况吗?

最佳答案

同一进程的线程共享同一个堆,因此在这个堆上分配的内存可以在这些线程之间共享。

所有程序需要确保保护此类“共享”内存免受并发访问。

后者可以通过使用锁来实现,例如互斥锁。

关于c++ - 可以安全共享指针数据的多线程库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16119771/

相关文章:

C++ 内存分配 new[] 和 delete[]

c# - 如何在计算机锁定时按键盘键

windows - 如何创建名称大小写不同的目录? (区分大小写的 CreateDirectory 函数)

c++ - 以编程方式关闭对话框 - win32

c - 解释在主动套接字(而不是被动套接字)上调用时接受函数的行为

c++ - 使用角色更改 QAbstractTableModel headerData

c++ - 从固定内存偏移量 : Visual C++ Programming 获取值

c++ - 似乎无法找到无限循环的原因

c - 遍历数组 MASM 中的元素并对其求平均值

c - Mandelbrot 消息队列阻塞 - C