You can use traditional Java synchronization mechanisms like synchronized blocks and java.util.concurrent.locks in Scala to manage thread safety and mutual exclusion.
xxxxxxxxxx
val lock = new ReentrantLock()
lock.lock()
try {
// Critical section
} finally {
lock.unlock()
}