Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Criando Threads

Vamos ao modelo de concorrência mais fundamental: threads do SO como unidade de concorrência, memória compartilhada como comunicação, locks como sincronização.

Threads são um construto do sistema operacional: vivem no kernel-space. Mas para usá-las, a linguagem de programação precisa oferecer um tipo que represente essas threads no user-space. Cada linguagem faz isso de um jeito: C expõe a API POSIX direto, C++ embrulha em classes com semântica de ownership, Java e Kotlin usam objetos gerenciados pelo garbage collector, e Python carrega junto uma restrição peculiar (o GIL) que muda o que threads conseguem fazer na prática.

Nos próximos sub-capítulos, vamos criar threads em cada uma dessas linguagens.