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

php电子商务网站开发实例做空机构的网站

php电子商务网站开发实例,做空机构的网站,wordpress 页面标签页,景区官方网站建设文章目录 死锁问题场景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.yayakq.cn/news/2481/

相关文章:

  • 网站推广的企业湖南网站建设工作室
  • 永久建站平台solidworks永久免费版
  • 建一个网站怎么赚钱福田庆三下巴
  • 网站外链单页购物网站源码
  • 北京市住房和城乡建设厅官方网站建筑图纸怎样识图
  • 怎么创建网站建设什么网站做电子元器件
  • 广州seo网站推广优化青少年编程培训哪家好
  • 房地产网站模板库国内crm系统
  • 怎样制作一个app软件网站关键词快速排名优化
  • 网站建设基础问题企业网站建设智恒网络
  • 天河低价网站建设哪里有零基础网站建设教学公司
  • 建设一个连接的网站个人网站有必要备案吗
  • 怎么上传网页到wordpress郑州seo地址
  • 模板网站建设珠海wordpress发布工具
  • 佛山建设工程交易中心网站教育类网站开发费用
  • 湖南响应式网站哪家好wordpress 解析插件
  • 手机网站和微网站wordpress统计访问量
  • 北京网站建设的服务公司自己搭建视频播放网站
  • 微信网站案例无极网络平台
  • 微信网站建设费用计入什么科目如何在手机上做微电影网站
  • 网站导出链接查询天津公司建站
  • 西安建站模板厂家网站建设业务前景
  • 方又圆网站建设百度关键词数据
  • 企业建设网站的主要目的有哪些服务公司的经营范围
  • 温州做网站哪里好建造自己的网站
  • 建网站的8个详细步骤昌乐建设局网站
  • 一个ip怎么做多个网站百度seo关键词点击软件
  • 如何构建个人网站安阳贴吧论坛
  • php精品网站建设连云港市建设工程安全监督站网站
  • 泰州营销型网站工程造价信息网官网信息价