15.12.2022 Views

Python Eficaz

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CAPÍTULO 5

Simultaneidade e paralelismo

Simultaneidade (ou concorrência, do inglês concurrency) é o estado operacional

no qual um computador aparentemente faz muitas coisas ao mesmo tempo. Por

exemplo, em um computador com um processador de apenas um núcleo, o

sistema operacional rapidamente alterna entre os programas que estão na

memória, de modo que, num determinado momento e por um período muito

curto de tempo, só um programa esteja recebendo a atenção da CPU. Essa

execução intercalada e em alta velocidade dos programas cria a ilusão de que

estão rodando simultaneamente.

Já o paralelismo é a capacidade de um computador de realmente fazer duas ou

mais coisas ao mesmo tempo. Computadores com CPUs de mais de um núcleo

podem executar vários programas simultaneamente. Cada núcleo roda as

instruções de um programa diferente, permitindo que todos eles avancem ao

mesmo tempo em suas listas de tarefas.

Dentro de um mesmo programa, a simultaneidade é uma ferramenta que facilita

a solução de certos tipos de problemas. Programas concorrentes fazem com que

caminhos de execução distintos possam ser trilhados de uma maneira que

aparente ser tanto simultânea como independente.

A diferença-chave entre paralelismo e simultaneidade (ou concorrência) é a

velocidade de execução. Quando dois caminhos de execução distintos em um

programa avançam em paralelo, o tempo que levam para produzir o resultado

final desejado é cortado pela metade. A velocidade de execução é duas vezes

maior. Por outro lado, os programas concorrentes podem rodar centenas de

caminhos de execução separados, que aparentam estar em paralelo, mas que na

realidade não alteram a velocidade de execução.

O Python facilita a criação de programas concorrentes, e pode também ser usado

para desempenhar tarefas paralelas por meio de chamadas de sistema,

subprocessos e extensões na linguagem C. Todavia, pode ser bastante difícil

fazer com que programas concorrentes em Python rodem verdadeiramente em

www.full-ebook.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!