当前位置: 首页 > news >正文

深圳高端网站建设美工做网站基本流程

深圳高端网站建设美工,做网站基本流程,内蒙古企业网站制作,超全的开源建站系统大全c 互斥锁使用详解 std::mutex 用于保护共享资源,防止多个线程同时修改共享资源而引发竞争条件。 成员函数 lock:锁定互斥,若互斥不可用则阻塞。try_lock:尝试锁定互斥,若互斥不可用则返回。unlock:解锁…

c++ 互斥锁使用详解

std::mutex

  • 用于保护共享资源,防止多个线程同时修改共享资源而引发竞争条件。

成员函数

  • lock:锁定互斥,若互斥不可用则阻塞。
  • try_lock:尝试锁定互斥,若互斥不可用则返回。
  • unlock:解锁互斥。

推荐使用方法

  • 不推荐直接调用 std::mutex 的成员函数,若按此处理,则在多条代码路径都要调用 unlock,包括由于异常导致退出的路径。
  • 推荐使用 std::unique_lock 或 std::lock_guard,以上两个类模板针对互斥锁实现了 RAII 手法:在构造时给互斥加锁,在析构时解锁,从而保证互斥锁总被正确解锁。

示例代码

  • 以下示例演示了两个线程交替写一个文件:

    #include <stdio.h>
    #include <string.h>
    #include <thread>
    #include <mutex>std::mutex g_mutex;void f1(FILE *fp)
    {// 获取互斥锁std::lock_guard<std::mutex> lk(g_mutex);// c++17 以上可以这样写·// std::lock_guard lk(g_mutex);// 进入临界区,访问共享资源const char* s = "thread1: hello\n";fwrite(s, strlen(s), 1, fp);// RAII,自动解锁
    }void f2(FILE *fp)
    {// 获取互斥锁std::lock_guard<std::mutex> lk(g_mutex);// c++17 以上可以这样写·// std::lock_guard lk(g_mutex);// 进入临界区,访问共享资源const char* s = "thread2: hello\n";fwrite(s, strlen(s), 1, fp);// RAII,自动解锁
    }int main()
    {// 新建文件FILE* fp = fopen("test.txt", "wt");// 创建线程std::thread t1(f1, fp);std::thread t2(f2, fp);// 等待线程结束t1.join();t2.join();// 关闭文件fclose(fp);return 0;
    }
    
http://www.sczhlp.com/news/75939/

相关文章:

  • 湖北建设厅网站首页永修县建设局网站
  • 公司做网站怎么做账做视频网站违法
  • 北京 网站定制开发营销型网站图片
  • 做商业地产常用的网站博兴网站建设
  • 做壁纸壁的网站有什么区块链开发技术
  • HCIA回顾—8 IP路由基础
  • 梯度下降法简介
  • 子集及相关算法
  • 做淘宝客怎么建网站青岛网站排名优化
  • 网站模板asp网站工信部实名认证中心
  • 做网站的分页查询建设网站的网站空间
  • 怎样建立一个网站网上怎样查询企业资质
  • html5微网站开发教程山东临沂网站设计公司
  • 公司网站建设费用如何做账国内建设地铁的公司网站
  • 营销企业网站建设步骤公司做网站推广
  • 西安优化网站公司深圳网站设计公司设计
  • 游戏设置面板
  • ARC 205
  • 制作微网站多少钱百度只收录栏目不收录网站文章
  • 做网站金山一级造价工程师含金量
  • 网站优化工作安排wordpress主题安装后空白
  • 无锡网站App微信网站建设 中国联盟网
  • ARM版Windows系统选哪个结构:全面指南与建议
  • 如何在iPhone与Windows系统间轻松切换
  • netlify部署vitepress项目
  • 微信网站模板源码成都手机端建站模板
  • wordpress网站设计网站建设与管理心得体会和总结
  • 平台的运营推广怎么做企业网站优化软件
  • 织梦旅游网站源码dw可以做h5网站
  • 东莞seo排名优化服务杭州seo推广排名稳定