java 死锁问题
请问下我这份代码会产生死锁吗,如果会的话会锁死在哪里?具体过程求分析
如果不会的话,怎么改才会出现死锁。
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();
}
}