文章目录
1.叫做std::lock_guard
1.更灵活
2.处理70多线程编程的局限处,std::lock有优化
1)顺便提一下,不好的写法,单线程也会死锁(先比较a和b的地址)
原理讲解,当有两个线程同时往对方转钱,会死锁
改进
先锁地址小的锁,避免了死锁,但是这么写代码会很冗长难看
标准库的简易写法:
第一句:完全锁住形参的锁,无论传入顺序,只管锁
第二和第三句话是解锁:传入锁 ,在析构时解锁
1.更灵活
2.处理70多线程编程的局限处,std::lock有优化
1)顺便提一下,不好的写法,单线程也会死锁(先比较a和b的地址)
原理讲解,当有两个线程同时往对方转钱,会死锁
改进
先锁地址小的锁,避免了死锁,但是这么写代码会很冗长难看
标准库的简易写法:
第一句:完全锁住形参的锁,无论传入顺序,只管锁
第二和第三句话是解锁:传入锁 ,在析构时解锁