Java em poucas palavras (Portuguese Edition), 9th Edition
by Benjamin J. Evans, Jason R. Clark, David Flanagan
Capítulo 12. Concorrência em Java
Este trabalho foi traduzido com recurso a IA. Agradecemos o teu feedback e comentários: translation-feedback@oreilly.com
Este capítulo é uma introdução ao tratamento da concorrência (multithreading) na plataforma Java. Para entender bem esse assunto, é importante ter um bom domínio do conteúdo sobre memória do Capítulo 9— principalmente porque alguns dos diagramas deste capítulo se baseiam nesses conceitos. Também é útil, mas não essencial, estar familiarizado com os componentes básicos dos sistemas operacionais, como o agendador.
Vamos abordar:
-
Primitivas de concorrência do Java
-
Visibilidade e mutabilidade dos dados
-
Executores e pools de threads
-
Estruturas de dados concorrentes
-
Virtual threads
Vamos começar definindo os termos e conceitos básicos que usaremos ao longo deste capítulo.
Conceitos básicos de concorrência em Java
A ideia de uma thread é a de uma unidade leve de execução — menor que um processo, mas ainda assim capaz de executar código arbitrário. A forma comum de implementar isso é fazer com que cada thread seja uma unidade de execução completa para o sistema operacional, mas que pertença a um processo, com o espaço de endereço desse processo sendo compartilhado entre todas as threads que compõem esse processo. Isso significa que cada thread pode ser agendada de forma independente e tem sua própria pilha e contador de programa, mas compartilha memória e objetos com outras threads no mesmo processo.
O Java oferece suporte ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access