摘要:
不合理的设定临界区域,会让线程的调用失去意义。 1.不应该频繁的使用锁 2.减小锁使用的区域,线程公共资源之外 的资源 尽量不要放到临界区。 示例一:(这样使用线程锁,设定的临界区域不合理,会让线程的调用失去意义,线程并没有并发执行) #include <iostream> #include <th 阅读全文
摘要:
代码结构比较复杂的情况下,手动加锁,解锁,可能会有所遗漏。 这种情况下,推荐使用自解锁(自解锁在构造的时候lock,在析构的时候unlock)(对象在超出作用域时会执行析构) 自解锁,手动锁优缺点:自解锁每次都会构造,析构。在执行效率上没有手动锁效率高。 演示代码: 示例一:手动加锁,解锁(要在每个 阅读全文
摘要:
不合理的设定临界区域,会让线程的调用失去意义。 代码一: #include <iostream> #include <thread> #include <mutex> using namespace std; mutex m_lock; void workFun(int index) { for ( 阅读全文