Threads of one process see the same variables, which makes sharing cheap and makes unsynchronized writes dangerous. The OS schedules them; see race condition.