01-Introducao
Introdução à Programação Concorrente
Conteúdo
• Introdução à Programação Concorrente
• Definição
• Linguagens
• Aplicação
• Vantagens
• Desvantagens
Programação Concorrente
• O que é?
• Do dicionário:
• Que concorre
• Em que há simultaneidade
• Da computação:
• Execução de tarefas computacionais concorrentemente,
simultaneamente (ao mesmo tempo)
• É um paradigma de Programação
Programação Concorrente
• Linguagens
• As linguagens mais utilizadas para Programação Concorrente nos dias de hoje é C#, Java, Objective C, Delphi.
• Muitas outras linguagens suportam a concorrência, tais como, C
C++, ADA, Go
• Aplicação
• Sistemas Operacionais (PC’s e Mobile)
• Softwares robustos
• Sistemas Distribuídos
• Banco de Dados
Programação Concorrente
• Exemplo de Aplicação
• Imagine que você precisa executar algumas buscas SQL em vários
servidores de banco de dados espalhado pelo mundo.
• Cada instrução SQL deve ser executada em 5 diferentes
servidores pelo mundo, a fim de colher dados de venda de um determinado produto de uma empresa multinacional.
• Como seria a solução utilizado a programação concorrente?
Programação Concorrente
• Exemplo de Aplicação:
• Cálculo da média
• [ (N1*4) + (N2*6) ] / 10
N1 * 4
+
Início
N2 * 6
10
/
Fim
Programação Concorrente
• Vantagens do uso
• Aumento de performance
• Agilidade na execução de trabalhos
• Uso de computadores como Multi-tarefas
• Imagine que fosse necessário ter um computador para mexer no Word
e outro, diferente, para mexer no Excel.
• Usar todas as CPU’s disponíveis, o tempo todo, com trabalho útil.
• Desvantagem do uso
• Dificuldade na implementação
• Sincronização
• Acesso ao mesmo tempo a um recurso compartilhado
Conclusão
• Um programa que utiliza a tecnologia de concorência é
mais difícil de implementar, porém o ganho de performance e o resultado obtido, quando