std::scoped_lock::scoped_lock
STD:范围[医]锁定::范围[医]锁
explicit scoped_lock( MutexTypes&... m | (1) | (since C++17) |
---|---|---|
scoped_lock( MutexTypes&... m, std::adopt_lock_t t | (2) | (since C++17) |
scoped_lock( const scoped_lock& ) = delete; | (3) | (since C++17) |
获取给定互斥对象的所有权。m
...
1%29sizeof...(MutexTypes) == 0
什么都不做。否则,如果sizeof...(MutexTypes) == 1
,有效地调用m.lock()
.否则,有效地打电话std::lock
(m...)
如果MutexTypes
不是递归互斥,并且当前线程已经拥有相应的参数。m...
...
2%29获取互斥体的所有权m...
而不试图锁定他们中的任何一个。除非当前线程拥有m...
...
3%29复制构造函数被删除。
如果m
在scoped_lock
对象是。
参数
m | - | mutexes to acquire ownership of |
---|---|---|
t | - | tag parameter used to select non-locking version of the constructor |
例外
1%29抛出由m.lock()
2%29
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。