An example for deadlock : Synchronize « Thread « SCJP

Home
SCJP
1.Java Source And Data Type
2.Operators
3.Modifiers
4.Type Casting
5.Statements
6.Object Oriented
7.Thread
8.Utility Classes
9.File
SCJP » Thread » Synchronize 
7.9.4.An example for deadlock
class MainClass implements Runnable {
  Object firstResource;

  Object secondResource;

  public MainClass(Object first, Object second) {
    firstResource = first;
    secondResource = second;
  }

  public void run() {
    while (true) {
      synchronized (firstResource) {
        synchronized (secondResource) {
          try {
            Thread.sleep(100);
          catch (InterruptedException ex) {
          }
        }
      }
    }
  }

  public static void main(String[] args) {
    Object a = "Resource A";
    Object b = "Resource B";
    Thread t1 = new Thread(new MainClass(a, b));
    Thread t2 = new Thread(new MainClass(b, a));
    t1.start();
    t2.start();
  }
}
7.9.Synchronize
7.9.1.synchronized code
7.9.2.Synchronize an entire method by putting the synchronized modifier in the method's declaration.
7.9.3.Synchronizing Part of a Method
7.9.4.An example for deadlock
7.9.5.To synchronize part of a method preceded by synchronized(this).
7.9.6.When used with a code block, synchronized must be applied to an object.
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.