- Hard synchronization: The entire tree data structure is locked during operations;
- Soft synchronization: Only the current and previous nodes are blocked;
- Optimistic synchronization: A validate() function is used to minimize the number of locks.
Each implementation is designed to run in a multithreaded environment, allowing for concurrent access to the tree.