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

洛阳做网站的对象存储 做视频网站

洛阳做网站的,对象存储 做视频网站,分析网站建设的体会,asp网站部署 iis70.死锁的由来 假设有两个线程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/14591726/

相关文章:

  • asp.net网站设计分工电商网站开发数据库设计
  • 做网站字号多大广东vs北控直播
  • 免费模板下载网站推荐专业刷粉网站
  • 建设企业官方网站企业登录360浏览器免费网站
  • 如何防止网站挂马湖南省建设厅官网查询
  • 做漂亮的网站7k7k网页游戏
  • 外贸网站建设有哪些要求wordpress 双陈
  • 河北云网站建设wordpress如何上传文件
  • 班级网站建设的系统概述5000多一年的网站建站
  • 跨境电商平台网站建设多少钱重庆装修全包价多少钱一平方
  • app开发与网站开发有何不同网站制作网站建
  • DW做的网页用网站打不开专升本需要考些什么科目
  • 苏州设计网站公司怎么做应援网站
  • 青岛 php 网站建设网站建设资金申请报告
  • 站长之家官网查询怎样弄网站的导航栏
  • 北京网站设计公司兴田德润信任高淘客网站app建设
  • 中小网站公司做的推广怎么样官方网站建设公司
  • 怎么让网站排名下降公司网站维护一般需要做什么
  • 网站推广必做凡客诚品首页html
  • 初学者学做网站用什么软件网站建设网站需要什么
  • 做外贸的 需要什么样的网站云南域名注册网站建设
  • 网站建设推广服务金华网站建设微信开发
  • 企业网站开发报价单电影网站建设需要什么
  • 网站首页样式网站备案哪个部门
  • 韩国优秀网站做网站建设的公司有哪些
  • 北京设计网站的公司哪家好WordPress适合做多大级别的网站
  • 唐山建设工程信息网站太原建设局网站
  • 成品网站分享一下建设网站河北建设网
  • 龙南城市建设局网站昆明做网站建设哪家好
  • 西安网站制作资源wordpress 文章 碎片