Baixe o app para aproveitar ainda mais
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.
Compartilhar