Synchronizovat přístup z více vláken musíme u všech společných (sdílených) zdrojů.
Spočívá ve vyloučení souběžného přístupu ke sdílenému zdroji z více vláken a zajištění, že operace (metody) proběhnout atomicky (nepřerušeně vůči jiným vláknům nad týmž sdíleným zdrojem).
Někde se o to implicitně postará třída sama - např. u starších kolekcí Java Core API (Vector, Stack, Hashtable, StringBuffer,...). Neplatí to ale pro všechny třídy Core API.