基本上我想要实现的是在不同线程之间共享一个动态分配的状态标志数组,以控制线程之间的交互。
是否有任何库可以在 Windows 操作系统中完美地实现这一点?
我尝试了 Open MP,它给我带来了各种奇怪的错误和很多头痛,即使使用 omp flush all 有时数据仍然不是最新的,当访问频率很高时,volatile 指针也无济于事,所以程序变得非常不稳定和不一致。
是否有任何库可以更好地处理共享和经常更新和访问的数据数组(动态)? TBB 能处理这种情况吗?
最佳答案
同一进程的线程共享同一个堆,因此在这个堆上分配的内存可以在这些线程之间共享。
所有程序需要确保保护此类“共享”内存免受并发访问。
后者可以通过使用锁来实现,例如互斥锁。
关于c++ - 可以安全共享指针数据的多线程库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16119771/