Java Threads
|
Threads e Concorrência em
Java (Material de Apoio)
|
Professor: Lau Cheuk Lung http://www.inf.ufsc.br/~lau.lung |
INE-CTC-UFSC
A maioria dos programas são escritos de modo seqüencial com um ponto de início (método main()), uma seqüência de execuções e um ponto de término. z Em qualquer dado instante existe apenas uma instrução sendo executada.
O que são threads ?
É um simples fluxo seqüencial de execução que percorre um programa. Multithreading: o programador especifica que os aplicativos contêm fluxos de execução (threads), cada thread designando uma parte de um programa que pode ser executado simultaneamente com outras threads.
1
INE-CTC-UFSC
Programação concorrente
|
main()
|
Programação concorrente
Todo programa, sendo monothread ou multithread, inicia com a execução da thread principal.
Exemplo de um programa monothread g() g()
|
Exemplo de um programa multithread main() g()
g()
Mecanismos de sincronização e prioridade podem ser usados para controlar a ordem de execução de threads independentes e colaboradas.
INE-CTC-UFSC
|
INE-CTC-UFSC
Threads Java são implementadas pela classe Thread do pacote java.lang:
|
Esta classe implementa um encapsulamento independente de sistema, isto é, a implementação real de threads é oferecida pelo sistema operacional. z A classe Thread oferece uma interface unificada p para todos os sistemas.
• Portanto, uma mesma implementação do Java Thread pode fazer com que a aplicação proceda de forma diferentes em cada sistema.
Ver a API Thread Java em java.lang.Thread z 4
Threads em Java
z
|
Por que usar threads ? z Permitir que um programa faça mais de uma coisa ao mesmo tempo. Cada thread pode fazer coisas diferentes ao mesmo tempo, por exemplo:
• Uma thread baixando uma figura da rede e outra renderizando uma imagem;
• Uma gerenciando a edição de um texto e outra cuidando da impressão de um outro documento em background;
• Criação de várias threads para processamento de uma tarefa de forma