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();
}
}
进程不会结束 还在进行
有时候代码 处理不当 会不定期出现死锁,这是正常的开发的调试问题 属于正常
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步