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

百度网站改版做网站应达到什么效果

百度网站改版,做网站应达到什么效果,中国营销策划网,建网站能赚钱吗赚多少文章目录 死锁问题场景1场景2死锁的gdb调试造成死锁的必要条件不可剥夺循环等待互斥条件请求和保持 预防死锁破坏必要条件#xff0c;循环等待请求和保持加锁顺序一致避免锁没有被释放资源一次性分配 死锁问题 死锁的两种场景#xff1a; 场景1 线程加锁之后一直没有将锁… 文章目录 死锁问题场景1场景2死锁的gdb调试造成死锁的必要条件不可剥夺循环等待互斥条件请求和保持 预防死锁破坏必要条件循环等待请求和保持加锁顺序一致避免锁没有被释放资源一次性分配 死锁问题 死锁的两种场景 场景1 线程加锁之后一直没有将锁释放在上一篇文中我们模拟过这种场景某个线程拿到锁进行加锁线程退出之前没有释放锁导致后面的线程不能拿到锁一直在等待加锁导致程序一直不退出这也是为什么条件变量等待函数中第二个参数是锁的原因在该函数内部进行解锁防止死锁 场景2 两个线程都想拥有对方的锁导致死锁 两个线程A和B都阻塞在自己的加锁逻辑当中去 代码如下 执行结果程序阻塞了我们来分析一下 死锁的gdb调试 先使用gdb attach [pid]命令进入gdb调试状态 再使用 thread apply all bt来查看所有线程的调用堆栈 t线程序号跳转到某个线程的调用堆栈当中 我们如果想要进入某个具体的堆栈该怎么办呢 f[堆栈号] 可以通过 p [变量名]来打印这个变量其中__owner表示锁被谁拿走了 对应我们的线程可以看到两个锁分别被两个线程持有同时两个线程全部在等待拿锁谁都想拿到对方的锁但是谁也不可能解锁所以谁都不可能拿到对方的锁最后就造成死锁。 造成死锁的必要条件 不可剥夺 线程获取到互斥锁后除非自己释放锁不然其他线程是不可能进行锁的释放的 循环等待 上述场景2线程A拿着1锁请求2锁线程B拿着2锁请求1锁。 互斥条件 一个互斥锁在同一时间只能被一个线程所拥有 请求和保持 吃着碗里的看着锅里的已经拿到一个锁还想请求另一个锁类似循环等待场景 预防死锁 破坏必要条件循环等待请求和保持 我们在加锁的时候可以用pthread_mutex_trylock和pthread_mutex_timedlock( )函数这样就能避免一直死等锁尝试加锁多少次或者超时就放弃加速让其他线程可以拿到锁 加锁顺序一致 都先加一锁再加二锁这样防止一人拿一把锁还继续等着拿第二把锁 避免锁没有被释放 在所有线程可能退出的地方都进行解锁 资源一次性分配 多个资源在代码当中有可能每一个资源都需要使用不同的锁进行保护 例如:使用全局变量A需要1锁用全局变量B需要2锁 就有可能多个线程在使用这两个资源的时候出现循环等待的情况解决方法我们只需要给将A和B用同一把锁保护即可资源一次性分配
http://www.hkea.cn/news/14342037/

相关文章:

  • 北京南站到北京西站运营推广的方式和渠道有哪些
  • 企业门户网站建设方案后台管理地方网站成本
  • 租用海外服务器的网站有域名吗网站开发怎么样?
  • 网站建设的功能模型seo基础知识包括什么
  • 网站优化的虚拟主机装2个wordpress
  • 单位网站建设方案北京中天人建设工程有限公司网站
  • 网站开发core文件作用上海闵行刚刚发生的
  • 网站怎么制作成软件iis搭建多个网站
  • 怎么做购物微信网站wordpress安装方法
  • 手机网站关键词快速排名个人网站备案可以做博客吗
  • 山西自助建站系统怎么用国外免费ip地址和密码
  • 北海建设厅网站东营在建项目
  • 网站设计制作的公司失效网站建设费支出
  • 网站页面设置手机版网站设计套餐
  • 网站开发团队 组建东阳网站建设
  • 网站建设开什么名目网站开发客户对话
  • 滕州微信网站获取别人wordpress主题
  • flash 做ppt的模板下载网站wordpress数据插件
  • 做企业的网站都要准备什么职业装定制
  • 少部分网站ie打不开这些网站域名ping不通做蔬菜线上的网站
  • 网上购物商城网站营销型网站建设ppt模板下载
  • 关于网站建设的介绍wordpress怎么使用阿里图标
  • 常德网站建设策划方案网站下拉菜单重叠
  • 淘宝联盟网站推广怎么做移动路由器做网站服务器吗
  • 商丘做网站的电话湖南省网站建设项目
  • 成都网站优化公司哪家好不用登录的游戏
  • 网站开发是什么工作网站开发团队公司模式
  • 网站开发总结 优帮云dw制作简单网站模板
  • 河南做个人网站电子商务网站安全措施
  • 怎么做网站电影手表网站背景