some have better expressive capabilities than others, but they all do the same thing, which is to try to prevent two threads from getting at the same memory at the same time and causing this kind of problem.