Thread A calls containsKey and finds out that the key is not present, but is immediately suspended.Thread B calls containsKey and finds out that the key is not present, and has the time to insert its value v2.Thread A resumes and inserts v1, "peacefully" overwriting (since put is threadsafe) the ...