Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Introdução à Concorrência | Multithreading vs. Multiprocessing
Programação Estrutural em Python

Introdução à Concorrência

Deslize para mostrar o menu

Concorrência e paralelismo são termos frequentemente usados como sinônimos, mas descrevem abordagens diferentes para lidar com múltiplas tarefas. Concorrência refere-se à capacidade de um programa de gerenciar várias tarefas ao mesmo tempo, mas não necessariamente executando-as simultaneamente. Em vez disso, as tarefas podem se revezar utilizando os mesmos recursos, como um único núcleo de CPU, alternando rapidamente entre elas. Isso é especialmente útil para programas que passam tempo aguardando operações de entrada/saída (I/O), como leitura de arquivos ou conexões de rede.

Paralelismo, em contraste, significa realmente executar várias tarefas no mesmo exato momento. Isso é possível quando há mais de um núcleo de CPU disponível, permitindo que as tarefas sejam executadas verdadeiramente em paralelo. O paralelismo é especialmente importante para tarefas CPU-bound, que são limitadas pela velocidade do processador, como a realização de cálculos complexos.

Compreender a diferença entre tarefas CPU-bound e I/O-bound ajuda a escolher a abordagem correta. Tarefas CPU-bound são limitadas pela velocidade de computação, enquanto tarefas I/O-bound passam a maior parte do tempo aguardando a conclusão de operações externas, como acesso a disco ou respostas de rede. Em Python, a concorrência é frequentemente implementada usando threads, que são leves e podem ajudar com tarefas I/O-bound. Para tarefas CPU-bound, o multiprocessing, que utiliza processos separados, é mais eficaz porque as threads em Python são limitadas pelo Global Interpreter Lock (GIL).

Como visto no vídeo, a escolha entre concorrência e paralelismo depende da natureza da carga de trabalho do seu programa. Se suas tarefas estão aguardando por I/O, a concorrência com threads pode melhorar a eficiência. Se suas tarefas exigem muita computação, o paralelismo com múltiplos processos ajudará a aproveitar ao máximo o seu hardware.

question mark

Qual afirmação melhor descreve a diferença entre concorrência e paralelismo em Python?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 1

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 3. Capítulo 1
some-alt