java 死锁问题

frank0501 2015-07-19 11:52:58
请问下我这份代码会产生死锁吗,如果会的话会锁死在哪里?具体过程求分析
如果不会的话,怎么改才会出现死锁。


import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;


public class Test1 {


public static void main(String args[])
{
C c = new C();
A a = new A(c);
B b = new B(c);
Thread t1 = new Thread(a);
Thread t2= new Thread(b);
t1.start();
t2.start();
}
}

class C
{
Lock locka = new ReentrantLock();
Lock lockb = new ReentrantLock();
int count = 0;

public void get()
{
locka.lock();
lockb.lock();
System.out.println("1111111"+count++);
locka.unlock();
lockb.unlock();
}

public void put()
{ lockb.lock();
locka.lock();
System.out.println("2222222222"+count++);
lockb.unlock();
locka.unlock();
}
}
class A implements Runnable
{
C c;
A(C c)
{
this.c=c;
}
public void run()
{
while(true)
c.get();
}
}
class B implements Runnable
{
C c;
B(C c)
{
this.c=c;
}
public void run()
{
while(true)
c.put();
}
}
...全文
101 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,451

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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