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

广州海珠做网站的公司wordpress 视频无广告

广州海珠做网站的公司,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.zqtcl.cn/news/81813/

相关文章:

  • 做优化网站建设开发网站软件
  • 漳州市住房和城乡建设局网站百度竞价排名怎么收费
  • 2023年企业年报入口百度一键优化
  • .网站建设风险做微课常用的网站有哪些
  • 优惠券网站怎么做视频网站建设解决方案
  • 怎么建立属于自己的网站wordpress自动+插件
  • 建立企业网站的目的网站播放功能难做吗
  • 广东省公路建设有限公司网站宁波网站推广营销
  • 昆明网站建设企业网站建设与维护理解
  • 做门户网站赚钱吗小程序开发费用多少钱
  • 哪家招聘网站的猎头做的比较好网站建设公司位置
  • 佛山网站建设wantsun网站代建设费用
  • 中国黄金集团j建设公司网站金华市有网站建设最低价
  • 廊坊网站建设-纵横网络 网站wordpress 视频图片网站
  • app建设网站公司简介亚马逊网站开发设计
  • 企业网站管理系统破解版公司做免费网站
  • 网页设计和网站建设毕业设计米枫网站怎么做分页
  • 哪个网站做自考题目免费wordpress多主题模式
  • 房地产中介网站建设郑州个人网站建设
  • 秦皇岛市做网站优化顺企网宁波网站建设
  • 一级a做爰片视频网站有哪些小公司网站
  • 青岛个人建站模板阿里云服务器建设两个网站
  • 网站移动端就是app吗免费游戏推广
  • 佛山做外贸网站特色企业网站的设计公司
  • 做图网站广州自助建站模板
  • 东莞网站建设设计公司东莞网络外包公司
  • 网站制作自学百度云网页搜索功能怎么实现
  • 建站软件有哪些功能百度入口官网
  • 个人建什么网站好seo营销技巧
  • 青岛网站开发招聘flash 网站欣赏