zoukankan      html  css  js  c++  java
  • Java死锁

    Java线程同步死锁问题

    死锁是在进行多线程同步操作的时候 有可能产生的一种问题

    什么是死锁呢...

    前几天看了一个 程序员面试时 与Hr的对话

    H:请解释什么是死锁 解释好了 给你发offer

    M:先给我发offer我就解释

    H:请解释什么是死锁 解释好了 给你发offer

    M:先给我发offer我就解释

    H:请解释什么是死锁 解释好了 给你发offer

    M:先给我发offer我就解释

    ....

    这就是死锁的基本概念

    我在等你释放资源,你在等我不等你...

    举例

    package com.xiaowang;
    
    
    class Hr {
        public synchronized void say(Mn m) {
            System.out.println("请解释死锁");
            m.get();
        }
    
        public synchronized void get() {
            System.out.println("你入职了!");
        }
    }
    
    class Mn {
        public synchronized void say(Hr h) {
            System.out.println("先发offer");
            h.get();
        }
    
        public synchronized void get() {
            System.out.println("有工作了!");
        }
    
    }
    
    class tests implements Runnable {
        private Mn m = new Mn();
        private Hr h = new Hr();
    
        @Override
        public void run() {
            h.say(m);
        }
        public tests() {
            new Thread(this).start();
            m.say(h);
        }
        public static void main(String args[]) {
            new tests();
        }
    
    }
    
    

    进程不会结束 还在进行

    有时候代码 处理不当 会不定期出现死锁,这是正常的开发的调试问题 属于正常

  • 相关阅读:
    使用arcpy添加grb2数据到镶嵌数据集中
    使用python把gdb格式的文本文件转为utf-8的格式
    Spring Cloud
    windows 下nginx配置php支持
    nginx开启gzip
    ant design 修改tab样式
    使用arcpy替换工程文件中的栅格图层数据源异常
    cenos 安装hadoop
    失败
    linux挂载新硬盘
  • 原文地址:https://www.cnblogs.com/laowt/p/14545992.html
Copyright © 2011-2022 走看看