0

我正在尝试使用线程屏障同步一堆线程。我尝试使用 Boost::barrier 来做到这一点,但我遇到了一些链接问题:Compiling Bullet Physics 和 Boost together as static library

因此,虽然解决它可能需要一些时间,但我决定继续使用我自己的线程屏障类。屏障机制需要低延迟,因为我将它用于实时模拟器。我在这里查看了一些选项:

使用 c++11 atomics 编写(旋转)线程屏障

但是它使用了我认为在 Visual Studio 2010 中还不够成熟的 C++ 原子。我正在尝试仅使用 win32 API 将我自己的线程屏障类组合在一起,我正在查看这个:

http://adilevin.wordpress.com/category/multithreading/

我想知道是否有人有更好的建议。我宁愿没有外部库依赖,现在只使用 C++ 和 win32 api。

4

1 回答 1

1

如果您可以直接使用 Win32 API(而且您似乎可以),那么您可以使用 Win32 atomics 滚动您自己的 atomic<> 模板:

InterlockedExchange InterlockedCompareExchange 等...

然后,当您在 IDE(Visual Studio 2011?)中对原子有更好的支持时,您可以将自己的模板换成标准库中的模板。

于 2012-04-29T02:32:21.513 回答