Buscar

Implementação de Threads em Java

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

*
*
*
IMPLEMENTAÇÃO THREADS
existem duas formas de criar Threads em java;
uma através da herança da classe Thread 
outra através da implementação da interface Runnable 
em ambos os casos a funcionalidade (programação) das threads é feita na implementação do método run.
*
*
*
Implementando a Interface Runnable 
a classe que implementa a thread deve declarar um objeto do tipo Thread e para instanciá-lo deve chamar o construtor da classe Thread passando como parâmetro a instância da própria classe que implementa Runnable e o nome da thread 
*
*
*
IMPLEMENTAÇÃO THREADS
escolha entre um dos dois métodos de criação de thread 
a linguagem Java não permite herança múltipla, 
assim quando uma classe que já for sub-classe de outra precisar implementar thread é obrigatório que isso seja feito através da implementação da interface Runnable,
 caso contrário pode-se utilizar sub-classes da classe Thread. 
exemplo 
implementação de Applet as quais obrigatoriamente devem ser sub-classes da classe Applet, a
só podem implementar threads através da implementação da interface Runnable.
*
*
*
Interface Runnable
Esta classe deve implementar a interface Runnable e utilizar um objeto da classe Thread para ativar a linha de execução
Runnable possui um método run() cujo comportamento é semelhante ao da classe Thread
*
*
*
Interface Runnable
class ContaBonificada extends Conta implements Runnable {
 private Thread thread1;
 ...
 public void start() {
 if (thread1 == null)
 thread1 = new Thread(this);
 thread1.start();
 }
}
*
*
*
PRIORIDADE
O escalonamento é fundamental quando é possível a execução paralela de threads, 
certamente existirão mais threads a serem executadas que processadores
assim a execução paralela de threads é simulada através de mecanismos do escalonamento dessas threads 
*
*
*
PRIORIDADE
toda thread possui uma prioridade, a qual pode ser um valor inteiro no intervalo [MIN_PRIORITY ... MAX_PRIORITY], (estas são constantes definidas na classe Thread), 
e quanto maior o valor do inteiro maior a prioridade da thread. 
Cada thread Nova recebe a mesma prioridade da thread que a criou 
a prioridade de uma thread pode ser alterada através do método setPriority(int priority).
*
*
*
CÓDIGO FONTE
*
*
*
Estados de um Thread
*
*
*
*
*
*
Classe Thread
Método sleep:
static void sleep(long ms) – coloca a linha de execução que está em execução em estado de suspensão pelo número de milisegundos especificado;
*
*
*
Interrompendo um Thread
Um thread termina quando seu método run() retorna
Entretanto, quando um thread está dormente, ele não pode verificar ativamente se deve terminar
Threads devem “dormir” de vez em quando para dar uma chance de trabalho aos outros threads
Necessário utilizar os métodos interrupt() e interrupted()
*
*
*
Interrompendo um Thread
void interrupt()
Envia um pedido de interrupção para um thread;
Status de “interrompido” do thread é definido como true;
Se o thread foi bloqueado por uma chamada ao método sleep() ou wait(), uma InterruptedException será lançada
static boolean interrupted()
Testa se o thread corrente (thread que está executando essa instrução) foi interrompido ou não
Reinicializa o status de “interrompido” do thread para false
*
*
*
Exercício
Faça um thread para exibir uma mensagem;
No programa principal instancie dois threads:
 uma passando como argumento o seu nome
Outra passando como argumento seu sobrenome
Inicie estes threads;
Defina prioridades distintas para elas e veja o resultado.

Outros materiais