Interface Synchronizable


public interface Synchronizable

Implementations of this interface expose a lock object via getLock() so that callers can synchronize externally on that lock:

 if (iterator instanceof Synchronizable)
 {
     Object element = null;
     synchronized (((Synchronizable)iterator).getLock())
     {
         if (iterator.hasNext())
             element = iterator.next();
     }
 }
 

In the example above, the calls to hasNext() and next() are performed "atomically".