我想在我的cpp多线程代码中使用std::experimental::barrier
。但是即使我写这样的代码:
#include <iostream>
#include <thread>
#include <experimental/barrier>
int main () {
return 0;
}
编译器抛出错误,说明:
experimental/barrier: No such file or directory
#include <experimental/barrier>
^`
我在Ubuntu机器上使用的是g ++版本6.3.0。
这是我正在尝试的命令:
g++ -pthread -std=c++11 top.cpp -o top_new
最佳答案
目前该库尚不可用。
也许这将是有用的:
The GNU C++ Library Manual -> Part III. Extensions -> 30. Concurrency
文件包含用于处理线程的所有更高级别的构造。与原子层相反,并发层主要由类型组成。所有类型都在命名空间__gnu_cxx中定义。
...
此外,还有两个宏
_GLIBCXX_READ_MEM_BARRIER
_GLIBCXX_WRITE_MEM_BARRIER
扩展到主机硬件和操作系统所需的适当的读写屏障。