您的位置:首页 > 编程语言 > Java开发

java基础pdf上关于死锁演示代码

2012-11-01 15:09 441 查看
java 基础上看到的一篇关于同步死锁代码。。

第一次看,不懂。

留着,再看。

范例:DeadLockDemo.java
class A
{
synchronized void funA(B b)
{
String name=Thread.currentThread().getName();
System.out.println(name+ " 进入 A.foo ");
try
{
Thread.sleep(1000);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
System.out.println(name+ " 调用 B 类中的 last()方法");

b.last();
synchronized void last()
{
System.out.println("A 类中的 last()方法");
}
}
}
class B
{
synchronized void funB(A a)
{
String name=Thread.currentThread().getName();
System.out.println(name + " 进入 B 类中的");
try
{
Thread.sleep(1000);
}
catch(Exception e)
{
ystem.out.println(e.getMessage());
}
System.out.println(name + " 调用 A 类中的 last()方法");

a.last();

synchronized void last()
{
System.out.println("B 类中的 last()方法");
}
}

class DeadLockDemo implements Runnable
{
A a=new A();
B b=new B();

DeadLockDemo()
{
// 设置当前线程的名称
Thread.currentThread().setName("Main -->> Thread");
new Thread(this).start();

a.funA(b);
System.out.println("main 线程运行完毕");
}
}

public void run()
{
Thread.currentThread().setName("Test -->> Thread");
b.funB(a);
System.out.println("其他线程运行完毕");
}

public static void main(String[] args)

{
new DeadLockDemo();
}
运行结果如图 9-5 所示:


尼嗎图上传失败

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