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

    进程不会结束 还在进行

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

  • 相关阅读:
    sql_mode=only_full_group_by引起group by查询报错问题
    在Eclipse下使用ant,build项目报jpeg does not exist
    JAVAEE面试之Hibernate缓存
    页面加载中效果实现
    鼠标滑过显示图片
    VSFTP配置参数详解
    FTP上传核心方法
    java对File的特殊操作
    在mybatis下使用日期比对出错
    Linux常用命令
  • 原文地址:https://www.cnblogs.com/laowt/p/14545992.html
Copyright © 2011-2022 走看看