java 中线程的死锁问题

来源:百度知道 编辑:UC知道 时间:2024/06/02 14:02:53
程序要求有一个共享资源对象ShareResources 。两个线程对象MultiThread对其进行资源争夺。为了防止其发生共享资源混乱的现象 我们用了Synchronized关键字 这样就造成了”死锁”的可能性 试创建这两个类构造死锁可能发生的程序。
我需要完整的代码,能运行出结果,谢咯。

public class Client{
public static void main(String[] args) {
ShareResources sr = new ShareResources();
MultiThread t1 = new MultiThread(sr);

t1.start();
}
}
class ShareResources{
public synchronized void doSomething(){
System.out.println("hello world");
}
}
class MultiThread extends Thread{
private ShareResources sr;
public Thread1(ShareResources sr){
this.sr = sr;
}
@Override
public void run(){
sr.doSomething();
}
}

public clsss Test() {
String a = "xxx";

void b() {
synchronized(a) {
System.out.println(a);
c();
}
}

void c() {
synchronized(a) {
System.out.println(a);
b();
}
}

}

看一下线程死锁的条件,这个是关键。代码是变化的。