您的位置:首页 > 其它

关于死锁的产生

2015-07-21 23:05 239 查看
两个线程相互访问对方的释放锁,导致锁死

package thread.deaklock;

public class A {

static class B{

public B(){

}

C c;

/**
* @param c
*/
public B(C c) {
this.c = c;
}

public synchronized void tosayB(C c){
System.out.println("B to say hello!");
c.tosayC(this);
}


}

static class C{

public C(){

}

public synchronized void tosayC(B b){
System.out.println("C to say hello!");
b.tosayB(this);
}


}

static class run implements Runnable{

C c;
B b;

/**
* @param c
* @param b
*/
public run(C c, B b) {
this.c = c;
this.b = b;
}

public void run() {
c.tosayC(b);
b.tosayB(c);
}


}

public static void main(String[] args) {

C c = new C();

B b = new B();

new Thread(new run(c, b)).start();

new Thread(new run(c, b)).start();


}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: