新人求教 关于死锁。

foods00010 foods00010 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
class Test implements Runnable {
private static int ticket = 100;
private boolean flag = true;
Object obj = new Object();

public void setFlag(boolean flag) {
this.flag = flag;
}

public void Test() {
}

public void run() {
if (flag) {
while (true) {
synchronized (obj) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
if (ticket > 0) {
System.out.println(Thread.currentThread().getName() + "....." + ticket--);

}
}
}
} else while (true) {
show();}
}

public synchronized void show() {

synchronized (obj) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
if (ticket > 0) {
System.out.println(Thread.currentThread().getName() + "....." + ticket--);

}
}

}
}

public class Ticket {
public static void main(String[] args) {
Test T = new Test();

Thread t1 = new Thread(T);
Thread t2 = new Thread(T);

t1.start();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
T.setFlag(false);
t2.start();

}
}


求大神指导指导。。运行多次还没有出现死锁。看着没有什么问题啊。
...全文

相关推荐

什么是死锁,如何避免死锁?Java死锁详解

什么是死锁 死锁是指多个进程因竞争资源而引起的一种僵局,如果没有外力作用,所有进程都不会向前推进。 举例:假如有线程Thread1和Thread2,两个都要访问共享资源AB,Thread1和Thread2一个先访问A再访问B,另一个先访问B再访问A。但在他们线程未执行完时,都不会释放AB资源,那么就形成了一种僵局,Thread1在等待Thead2施放B资源,Thread2在等待Thread1释放A资源,两个进程就形成了一种僵局,下面以Java代码实现为例说明: public class DeadThread { private Thread thread1; public D

weixin_38725137

数据库死锁-解决死锁问题的三种办法

解决死锁问题的三种方法:预防死锁,检测死锁及避免死锁。

emoking

postgresql查询死锁以及杀死死锁进程sql.txt

查询sql的死锁进程,查找并杀死。解决生产数据库中卡死的现象。postgresql查询死锁以及杀死死锁进程sql

华丽丽的小低调

Mysql查看死锁与解除死锁的深入讲解

前言 前段时间遇到了一个Mysql 死锁相关的问题,整理一下。 问题描述:Mysql 的修改语句似乎都没有生效,同时使用Mysql GUI 工具编辑字段的值时会弹出异常。 什么是死锁 在解决Mysql 死锁的问题之前,还是先来了解一下什么是死锁。 死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等的进程称为死锁进程。 死锁的表现 死锁的具体表现有两种: Mysql 增改语句无法正常生效 使用Mysql GUI 工具编辑字段的值时,会出现异常。 如何避免死锁 阻止死锁的途径

weixin_38608866

SQLSERVER死锁总结

SQLSERVER死锁总结,里面详述基于SQLSERVER数据库如何排查并处理死锁的办法,及死锁产生的原因

sunhaook666
评论 6
收藏 已收藏
分享
返回顶部
foods00010
Java SE 62,621 成员 307,251 内容