jantar dos filososfos
1486 palavras
6 páginas
Neste artigo o nosso assunto central será a programação concorrente. Este paradigma foca-se principalmente na interação e execução de multitarefas, assim sendo, uma das principais preocupações quando nos deparamos com um algoritmo deste género são os problemas que podem ocorrer na sincronização e na partilha de recursos.As vantagens da programação concorrente são o aumento do desempenho do programa, devido ao aumento da quantidade de tarefas que podem ser executadas durante um determinado período de tempo.
Ao longo das próximas linhas vamos debruçarmo-nos sobre alguns factos deste género de programação.
Como referimos há pouco, um dos principais problemas a ter em conta é o problema da sincronização. E podemos considerar vários casos neste problema, quer seja com ler e/ou escrever um ficheiro, partilhar recursos ou ter o problema do produtor-consumidor com um entrepósito limitado.
Mas antes de avançarmos, vamos recuar ainda um pouco atrás de modo a que o leitor se recorde e/ou familiarize mais simplesmente com esta temática.
A programação concorrente é um paradigma de programação usado na construção de programas de computador que fazem uso da execução concorrente de várias tarefas computacionais que podem ser implementadas como programas separados ou como um conjunto de threads criadas por um único programa. Nesta altura faz sentido diferenciar o termo processo do termo thread, enquanto que para executar um processo precisamos de uma pilha e de valores de registo que nos dizem o estado desse processo, uma thread é uma linha ou contexto de execução, ou seja é uma forma de um processo se dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrentemente.
As threads podem compartilhar o mesmo espaço de memória assim como podem partilhar as mesmas variáveis, ao contrário dos processos que têm as suas próprias variáveis, pilha e alocação de memória.
Por este motivo caro leitor, é fácil admitirmos que criar e finalizar uma thread