# lock-strategies Tag: lock-strategies [since 2.0] Defines a list of lock strategies usable in Ivy. A lock strategy is used by a cache manager to decide when and how locking should be performed (see caches to see how to configure the lock strategy to use). The following strategies are registered by default: no-lock This lock strategy actually performs no locking at all, and thus should not be used in an environment where the cache is shared by multiple processes. artifact-lock This strategy acquires a lock whenever a module descriptor or an artifact is downloaded to the cache, which makes a good solution when you want to share your repository cache. Note that this strategy is based on file locking, performed by default using the `java.io.File.createNewFile()` atomicity (which is documented as atomic in the javadoc, but not recommended to perform locks). artifact-lock-nio (since 2.4) Like the `artifact-lock` strategy, this one also acquires a lock whenever a module descriptor or artifact is downloaded to the cache. But here the implementation is done with a `java.nio.FileLock`. The child tag used for the lock strategy must be equal to a name of a lock strategy type (added with the `typedef` tag). ## Child elements
Element | Description | Cardinality
--- | --- | ---
any lock strategy | adds a lock strategy to the list of available ones | 0..n