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

    进程不会结束 还在进行

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

  • 相关阅读:
    济南学习 Day5 T3 晚
    Codevs 1043 ==洛谷 P1004 方格取数
    济南学习 Day 5 T2 晚
    济南学习 Day 5 T1 晚
    济南学习 Day 5 T3 am
    济南学习 Day 5 T2 am
    LeetCode Weekly Contest 8
    poj-1410 Intersection
    leetcode-Warm Up Contest-Aug.21
    poj-1384 Piggy-Bank
  • 原文地址:https://www.cnblogs.com/laowt/p/14545992.html
Copyright © 2011-2022 走看看