# Package org.apache.commons.configuration2.sync

A package containing interfaces and classes related to synchronization of configurations.

Whether a configuration object has to be thread-safe or not is application-specific. Therefore, this library allows an application to adapt configuration objects to their requirements regarding thread-safety by assigning them so-called `Synchronizer` objects. A configuration invokes its `Synchronizer` every time it is accessed (in read or write mode). If configurations are not accessed concurrently by multiple threads, a simple dummy `Synchronizer` can be used - this is also the default setting. To ensure thread-safety, a fully functional implementation has to be set.

- Interface Summary
  Interface | Description
  --- | ---
  Synchronizer | An interface controlling synchronization of configuration instances.
  SynchronizerSupport | Definition of an interface for objects that can be associated with a `Synchronizer`.

- Class Summary
  Class | Description
  --- | ---
  ReadWriteSynchronizer | A special implementation of `Synchronizer` based on the JDK's `ReentrantReadWriteLock` class.

- Enum Summary
  Enum | Description
  --- | ---
  LockMode | An enumeration used by `SynchronizerSupport` to specify how an object is locked.
  NoOpSynchronizer | An implementation of the `Synchronizer` interface which does not perform any synchronization.