Skip to content

Latest commit

 

History

History
18 lines (14 loc) · 592 Bytes

070-cpp17-misc-scoped-lock.md

File metadata and controls

18 lines (14 loc) · 592 Bytes

scoped_lock : 可変長引数lock_guard

std::scoped_lockクラス<T ...>は可変長引数版のlock_guardだ。

int main()
{
    std::mutex a, b, c, d ;

    {
        // a,b,c,dをlockする
        std::scoped_lock l( a, b, c, d ) ;
        // a,b,c,dをunlockする
    }
}

std::scoped_lockのコンストラクターは複数のロックのオブジェクトのリファレンスを取り、それぞれにデッドロックを起こさない方法でメンバー関数lockを呼び出す。デストラクターはメンバー関数unlockを呼び出す。