麻烦大家看看该程序是否会造成死锁

125621099 2007-05-23 12:03:52
现有程序:
public class ThreadTest implements Runnable {
private static Object obj = new Object();

private String name = null;

public ThreadTest(String name) {
this.name = name;
}

public static void main(String[] args) {
new Thread(new ThreadTest("tt1")).start();
new Thread(new ThreadTest("tt2")).start();
}

public void run() {
while (true) {
System.out.println("before " + this.name);
synchronized (obj) {
//执行一些其它代码
this.go();
}
System.out.println("after " + this.name);
}
}

/**
* 可以直接被其他线程调用
*/
public void go() {
synchronized (obj) {
System.out.println(this.name + "running...");
}
}
}
...全文
262 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomkai 2007-05-23
  • 打赏
  • 举报
回复
不会死锁..

并不存在一个在等待池中的线程等另一个在等待池中线程的情况
tanlingyun 2007-05-23
  • 打赏
  • 举报
回复
你的程序没有sleep,造成死机倒是可能的.
tanlingyun 2007-05-23
  • 打赏
  • 举报
回复
不会,他们不具备死锁的条件.
polarman 2007-05-23
  • 打赏
  • 举报
回复
如果while死循环里没有sleep,while循环所在的线程会狂占CPU
likgui 2007-05-23
  • 打赏
  • 举报
回复
关注
pele007 2007-05-23
  • 打赏
  • 举报
回复
晕,搞得我死机了:)
allenblade 2007-05-23
  • 打赏
  • 举报
回复
应该不会吧
Cappuccino_mhc 2007-05-23
  • 打赏
  • 举报
回复
不会发生死锁现象

死机很有可能

产生死锁的必要条件是:1、互斥条件;2、不可剥夺条件(不可抢占);
3、部分分配;4、循环等待。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧