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

河北省网站建设公司排名洛阳做网站的

河北省网站建设公司排名,洛阳做网站的,微博同步到wordpress,中国十大公关公司0.死锁的由来 假设有两个线程T1和T2#xff0c;它们需要对两个互斥量mtx1和mtx2进行访问。而且需要按照以下顺序获取互斥量的所有权#xff1a; -T1先获取mte1的所有权,再获取mt2的所有权。 -T2先获取 mtx2的所有权。再铁取 mtx1的所有权。 如果两个线程同时执行#xff0c…0.死锁的由来 假设有两个线程T1和T2它们需要对两个互斥量mtx1和mtx2进行访问。而且需要按照以下顺序获取互斥量的所有权 -T1先获取mte1的所有权,再获取mt2的所有权。 -T2先获取 mtx2的所有权。再铁取 mtx1的所有权。 如果两个线程同时执行就会出现死锁问题。因为T1获取了mtx1的所有权但是无法获取mtx2的所有权而T2获取了mtx2的所有权但是无法获取 mtx1的所有权两个线程互相等待对方释放互斥量,导致死锁。 1.不同锁类型 类型类名作用超时锁timed_mutex避免长时间死锁递归锁recursive_mutex同一线程的同一锁可以锁多次避免死锁共享锁shared_mutex可以充分利用cpu资源 2.各种锁 2.1超时锁 ①作用避免长时间死锁 ②性质可以记录锁获取情况多次超时可以记录日志获取错误情况。 #include iostream #include thread #include mutexstd::timed_mutex tmux;void ThreadMainTime(int i) {for (;;){if (tmux.try_lock_for(std::chrono::microseconds(500))){std::cout i :[try_lock_for timeout] std::endl;continue;}std::cout [in] i std::endl;tmux.unlock();std::this_thread::sleep_for(std::chrono::microseconds(1));} }int main() {for (int i 0; i 3; i){std::thread th(ThreadMainTime, i 1);th.detach();}getchar();return 0; }2.2递归锁 ①作用同一线程的同一锁可以锁多次避免不必要的死锁。 ②性质组合业务用到同一个锁 注recursive_timed_mutex为递归超时锁 #include iostream #include thread #include mutexstd::recursive_mutex rmux;void Task1() {rmux.lock();std::cout task1 [in] std::endl;rmux.unlock(); }void Task2() {rmux.lock();std::cout task2 [in] std::endl;rmux.unlock(); }void ThreadMainRec(int i) {for (;;){rmux.lock();Task1();std::cout i [in] std::endl;std::this_thread::sleep_for(std::chrono::microseconds(2000));Task2();rmux.unlock();} }int main() {for (int i 0; i 3; i){std::thread th(ThreadMainRec, i 1);th.detach();}getchar();return 0; }2.3共享锁 #include iostream #include thread #include mutex #include shared_mutexstd::shared_timed_mutex stmux;void ThreadRead(int i) {for (;;){stmux.lock_shared();std::cout Read: i std::endl;std::this_thread::sleep_for(std::chrono::microseconds(3000));stmux.unlock_shared();std::this_thread::sleep_for(std::chrono::microseconds(1));} }void ThreadWrite(int i) {for (;;){stmux.lock_shared();stmux.unlock_shared();stmux.lock();std::cout Write: i std::endl;std::this_thread::sleep_for(std::chrono::microseconds(3000));stmux.unlock();std::this_thread::sleep_for(std::chrono::microseconds(1));} }int main() {for (int i 0; i 3; i){std::thread th(ThreadWrite, i 1);th.detach();}for (int i 0; i 3; i){std::thread th(ThreadRead, i 1);th.detach();}getchar();return 0; }
http://www.hkea.cn/news/14329455/

相关文章:

  • 合浦县城乡规划建设局网站看网站的访问量
  • 南京网站搜索优化手机作图软件app
  • 美食网站开发毕业设计建设俄语网站
  • 沈阳网络推广建站免费搭建平台网站
  • 网站建设推荐频道建设网站的服务器费用
  • wordpress+发布文章慢一个新的网站怎么做SEO优化
  • 建设电影网站赚钱临沂做网站首选
  • 常州网站建设公司教程wordpress简洁cms主题
  • 杭州市江干建设局网站wordpress防下载
  • 合肥建行网站国外新闻最新消息
  • 网站301跳转代码多用户网站制作
  • 国外做美食视频网站网络服务提供者知道或者应当知道网络用户
  • 色和尙做爰网站dz网站如何做301
  • 义乌网站优化怎样做士产品销售网站
  • 解析网站接口怎么做长沙网站搭建关键词排名
  • 建筑招聘湖南有实力的关键词优化
  • 佛山网站推广排名项目从立项到施工的程序
  • vpn网站模板wordpress是怎么添加登录的
  • 做贸易常用的网站WordPress标题换行显示
  • 美食健康网站的建设宜宾网站开发公司
  • 搭建一个企业网站需要多少钱外网设计素材网站
  • 百度云wordpress怎么搭建网站wordpress plugins.php
  • 建设部网站备案郑州旅游网站搭建
  • 昆明会员网站建设百度免费网站如何建设
  • 申请个人主页网站地址百度分享wordpress插件下载
  • 杭州网站建设推荐一个服务器能放多少网站
  • 樟树网站制作网站改版新闻稿
  • 有哪些网站做的比较好的东莞横沥医院
  • 一级a做爰片免费网站国语ui设计简介
  • 网站自定义链接怎么做wordpress怎么修改固定链接