Capítulo 9. Desempenho de Threading e Sincronização
Este trabalho foi traduzido com recurso a IA. Agradecemos o teu feedback e comentários: translation-feedback@oreilly.com
Desde os seus primeiros dias, parte do apelo do Java tem sido o facto de ser multithread. Mesmo antes de os sistemas multicore e multi-CPU serem a norma, a capacidade de escrever facilmente programas com threads em Java foi considerada uma das suas caraterísticas distintivas.
Em termos de desempenho, o apelo é óbvio: se duas CPUs estiverem disponíveis, uma aplicação pode ser capaz de fazer o dobro do trabalho ou a mesma quantidade de trabalho duas vezes mais rápido. Isto pressupõe que a tarefa pode ser dividida em segmentos discretos, uma vez que Java não é uma linguagem de autoparalelização que irá resolver as partes algorítmicas. Felizmente, hoje em dia, a computação é frequentemente constituída por tarefas discretas: um servidor que lida com pedidos simultâneos de clientes discretos, um trabalho em lote que executa a mesma operação numa série de dados, algoritmos matemáticos que se dividem em partes constituintes, etc.
Este capítulo explora como obter o máximo desempenho dos recursos de thread e sincronização do Java.
Threading e Hardware
Relembra a discussão do Capítulo 1 sobre sistemas multicore e sistemas hyper-threaded. Threading a nível de software permite-nos tirar partido dos múltiplos núcleos e hyper-threads de uma máquina.
Duplicar os núcleos de uma máquina permite-nos duplicar o desempenho da nossa ...
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