Java线程:并发协作(死锁)Java认证考试

文章作者 100test 发表时间 2010:01:01 15:51:04
来源 100Test.Com百考试题网


  线程发生死锁可能性很小,即使看似可能发生死锁的代码,在运行时发生死锁的可能性也是小之又小。
  发生死锁的原因一般是两个对象的锁相互等待造成的。
  在《Java线程:线程的同步与锁》一文中,简述死锁的概念与简单例子,但是所给的例子是不完整的,这里给出一个完整的例子。
  /**
  * Java线程:并发协作-死锁
  *
  * @author Administrator 2009-11-4 22:06:13
  */
  public class Test {
  public static void main(String[] args) {
  DeadlockRisk dead = new DeadlockRisk().
  MyThread t1 = new MyThread(dead, 1, 2).
  MyThread t2 = new MyThread(dead, 3, 4).
  MyThread t3 = new MyThread(dead, 5, 6).
  MyThread t4 = new MyThread(dead, 7, 8).
  t1.start().
  t2.start().
  t3.start().
  t4.start().
  }
  }
  class MyThread extends Thread {
  private DeadlockRisk dead.
  private int a, b.
  MyThread(DeadlockRisk dead, int a, int b) {
  this.dead = dead.
  this.a = a.
  this.b = b.
  }
  @Override
  public void run() {
  dead.read().
  dead.write(a, b).
  }
  }
  class DeadlockRisk {
  private static class Resource {
  public int value.
  }

相关文章


Java认证辅导:Java数组赋值的问题Java认证考试
使用java语言中的枚举enumJava认证考试
Java中ArrayList和LinkedList的比较Java认证考试
Java线程:volatile关键字Java认证考试
Java线程:并发协作(死锁)Java认证考试
Java线程:新特征 锁(下)Java认证考试
Java线程:新特征 锁(上)Java认证考试
Java线程:新特征有返回值的线程Java认证考试
Java线程:线程的调度让步Java认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛