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();
        }
    
    }
    
    

    进程不会结束 还在进行

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

  • 相关阅读:
    luogu P1486 [NOI2004]郁闷的出纳员
    Luogu P1894 [USACO4.2]The Perfect Stall
    关于中间6个月停更通知
    Luogu P1381油滴扩展
    没有上司的舞会(题解)
    幂的模运算(题解)
    闭合区域面积统计(题解)
    字符序列(题解)
    最大连续和(题解)
    排列问题
  • 原文地址:https://www.cnblogs.com/laowt/p/14545992.html
Copyright © 2011-2022 走看看