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

蜘蛛网是个什么网站wordpress 淘客网站

蜘蛛网是个什么网站,wordpress 淘客网站,做聊天室cpa用什么类型的网站好,网站建设的整体流程有哪些?不可重入锁确实可能导致死锁#xff0c;特别是在同一线程尝试多次获取同一把锁时。如果锁是不可重入的#xff0c;那么线程在第二次尝试获取锁时会永远阻塞#xff0c;从而导致死锁。 不可重入锁与死锁的关系 不可重入锁不允许同一个线程多次获取同一把锁。在以下情况下特别是在同一线程尝试多次获取同一把锁时。如果锁是不可重入的那么线程在第二次尝试获取锁时会永远阻塞从而导致死锁。 不可重入锁与死锁的关系 不可重入锁不允许同一个线程多次获取同一把锁。在以下情况下这种限制会导致死锁 递归调用时 如果一个方法使用了不可重入锁并递归调用自身那么在递归调用的过程中线程会尝试重新获取同一把锁而由于锁是不可重入的线程会阻塞在第二次锁请求上最终导致死锁。嵌套调用时 如果一个方法调用了另一个也需要同一把锁的方法同样会因为不可重入锁导致死锁。 示例不可重入锁导致死锁 代码示例 假设我们有一个不可重入锁 class NonReentrantLock {private boolean isLocked false;public synchronized void lock() throws InterruptedException {while (isLocked) {wait(); // 如果锁已经被占用等待释放}isLocked true;}public synchronized void unlock() {isLocked false;notify();} }public class DeadlockExample {private final NonReentrantLock lock new NonReentrantLock();public void method1() throws InterruptedException {lock.lock();System.out.println(Method1: Lock acquired);// 调用另一个需要同一把锁的方法method2();lock.unlock();System.out.println(Method1: Lock released);}public void method2() throws InterruptedException {lock.lock(); // 再次尝试获取锁System.out.println(Method2: Lock acquired);lock.unlock();System.out.println(Method2: Lock released);}public static void main(String[] args) {DeadlockExample example new DeadlockExample();new Thread(() - {try {example.method1();} catch (InterruptedException e) {e.printStackTrace();}}).start();} }运行结果 程序会在 method2() 尝试获取锁时发生死锁因为 method1() 已经持有了不可重入锁。method2() 需要获取同一把锁但由于锁是不可重入的线程会阻塞在 lock() 调用处。method1() 无法继续执行释放锁导致死锁。 为什么可重入锁不会导致死锁 可重入锁允许同一个线程多次获取同一把锁而不会被阻塞。这是通过计数器机制实现的 当一个线程第一次获取锁时计数器加1。如果该线程再次获取同一把锁计数器继续加1。每次释放锁时计数器减1只有当计数器归零时锁才真正释放。 因此在递归调用或嵌套调用时线程可以多次安全地获取锁不会导致死锁。 如何避免不可重入锁导致的死锁 使用可重入锁 替换不可重入锁为可重入锁例如Java 中的 ReentrantLock 或使用 synchronized。 设计避免嵌套锁定 如果锁是不可重入的尽量避免在同一线程中多次尝试获取同一把锁。 重构代码 如果可能将涉及不可重入锁的嵌套调用重构为非嵌套调用。 总结 不可重入锁确实会导致死锁尤其是在递归调用或嵌套调用时。如果代码中存在这种场景建议使用可重入锁例如 ReentrantLock 或 synchronized来避免死锁问题。
http://www.hkea.cn/news/14456577/

相关文章:

  • 小荷特卖的网站谁做的工商网查询企业信息查询系统
  • 南京做电商网站的公司wordpress无法连接数据库
  • 郑州网站建设qicaizz网页传奇打金
  • 海口网站建设品牌大全赤蚁网站建设
  • 做网站后面维护要收钱吗58同城找工作招聘官网
  • 哈尔滨做网站建设西安+美院+网站建设
  • 做公众号封面图的网站房屋备案信息查询入口
  • 做视频网站要多大的主机网站备案信息如何下载
  • 网站建设 需求分析报告网站打开速度变慢
  • 登封网络推广公司深圳seo优化公司搜索引擎优化方案
  • 汕头网站建设托管商业网站的相关内容
  • 高端的网站建设公司淘宝店采用哪些方法做网站推广
  • 免费服务器搭建网站详细教程沈阳网页模板建站
  • 如何建设小网站网站开发模式名词
  • 什么网站可以做任务领赏金公众号制作流程
  • 网站中文域名wordpress转dz
  • 西安志成网站建设公司网站的根目录是什么
  • 原创文学网站建设浙江省网站建设报价
  • 汕头网站制作后缀网站制作优化济南
  • 百度网站的结构新建wordpress模板
  • 上海网站建设找思创网络小程序跳转到网站
  • 成品网站 子目录打不开php网站安装图解
  • 动漫php网站模板面试网站开发员
  • 什么网站赚的钱最多手机做网站视频
  • 海口网站制作推广网站建设套用模板
  • 商洛网站建设公司网络营销效果评估
  • 做网站分为哪几个岗位网站整站html
  • 网站互动推广网站三要素关键词 描述怎么做
  • 上海市建设合同信息表网站上海品牌建站
  • html5网站特点开发板英文