No que diz respeito às primitivas básicas de programação paralela, controle de tarefas, comunicação e sincronização, na implementação de threads, três modelos de sincronização são descritos a seguir.
I. garante que somente uma thread por vez irá acessar uma seção de código específica ou acessar dados compartilhados – serializa a execução de threads
II. bloqueia threads até que uma condição seja satisfeita
III. coordenam o acesso a recursos, indicando o limite de threads que podem ter acesso concorrente a um recurso
Os três modelos de sincronização em I, II e III são denominados, respectivamente