Synchronizing Part of a Method : Synchronize « Thread « SCJP






by surrounding the desired lines of code with curly brackets ({}) and inserting the expression synchronized(someObject) before the opening curly. 


import java.awt.Rectangle;

class MyClass {
  Rectangle rect = new Rectangle(1, 1, 100, 100);

  void doit() {
    int x = 504;
    int y = x / 3;
    synchronized (rect) {
      rect.width -= x;
      rect.height -= y;
    }
  }
}





public synchronized void doStuff() {
    System.out.println("synchronized");
}

is equivalent to this:

public void doStuff() {
    synchronized(this) {
        System.out.println("synchronized");
    }
}








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.