我试图找到C ++ 11的关键部分的等价物,是new C++11 mutex concept进程限制(例如仅在用户空间强制执行互斥)?也许它是特定的实现,因为我找不到任何特定的东西。也许C ++ 11有自己的关键部分类,因为互斥体是跨进程的,对吧?请帮忙。
答案 0 :(得分:8)
标准库实现可以免费使用它喜欢的任何互斥实现,以满足标准中规定的要求和行为。提供跨进程锁定的实现 - 标准并不需要 - 可能不会比没有进行锁定的实现更低。因此,高质量的实现很可能提供进程本地互斥(突变?)。
因此,虽然可以使用例如命名的信号量来完成C ++ 11互斥体的一致性实现,但是很难将该实现销售给用户。据我所知,在std::mutex
中没有提供跨流程锁定的流行实现。
答案 1 :(得分:1)
C ++标准仅涉及单个程序,因此单个程序 处理;它没有什么可说的 处理。至少在一些Posix实现中,一些“互斥” 是跨进程的,所以在它们之下,任何C ++互斥体也都是 跨进程。在其他系统下,它可能取决于 系统
另外:在用户空间中实现互斥并不意味着它
不能进行跨进程,因为用户空间可以包含共享
内存或mmap
ed空间,可从多个空间访问
流程。