Synchronized is implementation detail

Although the synchronized keyword can appear in a method header, it does not form a part of a method's API or contract. Synchronization is part of the implementation, not part of the interface.

Note: some early Sun documentation (javadoc) included the synchronized keyword in the description of methods. This error was corrected in Javadoc 1.2.

Example

Here, a concrete implementation of an interface uses synchronized for some methods, even though the interface methods themselves make no mention of it.


public interface ScientificTheory {
  
  void publish();
  
  void predict();
  
  boolean falsifyThroughMeasurement();
  
} 



public final class LoopQuantumGravity implements ScientificTheory {

  @Override public synchronized void publish() {
    //..elided
  }
  
  @Override public synchronized void predict() {
    //..elided
  }
  
  @Override public boolean falsifyThroughMeasurement() {
    return true; //stub 
  }
  
} 



See Also :
Document thread safety
Would you use this technique?
Yes   No   Undecided   
© 2014 Hirondelle Systems | Source Code | Contact | License | RSS
Individual code snippets can be used under this BSD license - Last updated on September 21, 2013.
Over 2,000,000 unique IPs last year - Built with WEB4J.
- In Memoriam : Bill Dirani -