是否存在C ++ 11关键部分?

时间:2014-05-07 13:47:03

标签: c++ c++11 mutex critical-section

我试图找到C ++ 11的关键部分的等价物,是new C++11 mutex concept进程限制(例如仅在用户空间强制执行互斥)?也许它是特定的实现,因为我找不到任何特定的东西。也许C ++ 11有自己的关键部分类,因为互斥体是跨进程的,对吧?请帮忙。

2 个答案:

答案 0 :(得分:8)

标准库实现可以免费使用它喜欢的任何互斥实现,以满足标准中规定的要求和行为。提供跨进程锁定的实现 - 标准并不需要 - 可能不会比没有进行锁定的实现更低。因此,高质量的实现很可能提供进程本地互斥(突变?)。

因此,虽然可以使用例如命名的信号量来完成C ++ 11互斥体的一致性实现,但是很难将该实现销售给用户。据我所知,在std::mutex中没有提供跨流程锁定的流行实现。

答案 1 :(得分:1)

C ++标准仅涉及单个程序,因此单个程序 处理;它没有什么可说的 处理。至少在一些Posix实现中,一些“互斥” 是跨进程的,所以在它们之下,任何C ++互斥体也都是 跨进程。在其他系统下,它可能取决于 系统

另外:在用户空间中实现互斥并不意味着它 不能进行跨进程,因为用户空间可以包含共享 内存或mmap ed空间,可从多个空间访问 流程。