C++中的各种锁

打印 上一主题 下一主题

主题 823|帖子 823|积分 2469

在多线程开发中,常常会遇到数据同步,很多情况下用锁都是一个很好的选择。C++中常用的锁主要有下面几种:
互斥锁(std::mutex)


  • 这是最基本的一种锁。它用于保护共享资源,在任意时刻,最多只有一个线程可以获取该锁,从而访问被保护的资源。当一个线程获取了互斥锁后,其他试图获取该锁的线程会被壅闭,直到持有锁的线程释放它。
  • 比方,在一个多线程步伐中,如果多个线程必要访问和修改同一个全局变量,就可以利用互斥锁来确保在同一时间只有一个线程能够进行修改操纵,避免数据竞争导致的错误结果。
[code] 1 #include  2 #include  3 #include  4  5 std::mutex m; 6 int counter = 0; 7  8 void increment() { 9     m.lock();10     counter++;11     std::cout
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

写过一篇

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表