Orientação a Objetos Thread em Java extends Thread / implements Runnable Gil Eduardo de Andrade Thread em Java Introdução • Threads são tarefas (atividades) que podem ser criadas dentro um fluxo de código principal (aplicativo) para serem executadas em paralelo a ele; • O conceito de thread permite a um aplicativo dividir suas funcionalidades em módulos que executam de forma independente; Aula 21: Threads em Java: extends Thread / implements Runnable – Gil Eduardo de Andrade Thread em Java Codificação • O conceito de Thread pode ser implementado em Java através de duas técnicas: – Pela herança (extends) das funcionalidades da classe Thread; – Pela implementação da interface (implements) Runnable; Aula 21: Threads em Java: extends Thread / implements Runnable – Gil Eduardo de Andrade Thread Java A classe “Thread” • A classe Thread permite iniciar a execução de uma nova tarefa através da invocação do método start(); • Ao criarmos uma classe que estende da super classe Thread é necessário declararmos e implementarmos o método public void run(); Aula 21: Threads em Java: extends Thread / implements Runnable – Gil Eduardo de Andrade Thread Java A classe “Thread” • Dentro do método run() deve-se especificar o código-fonte que deve ser executado pela nova thread criada e iniciada pelo método start(); • Quando precisamos implementar um temporizador com uma thread utilizamos o método sleep(int time) que permite pausar a execução da thread em “time” milissegundos; Aula 21: Threads em Java: extends Thread / implements Runnable – Gil Eduardo de Andrade Thread Java Exemplo: “extends Thread” Herda as funcionalidades da classe Thread Invoca o construtor da classe Thread Inicia a execução da Thread Pausa a execução da Thread em 9 segundos Invoca o código a ser executado pela Thread. Aula 21: Threads em Java: extends Thread / implements Runnable – Gil Eduardo de Andrade Thread Java A interface “Runnable” • É possível criarmos uma thread, além de estendendo a classe Thread, implementando a interface Runnable; • Nesse processo estamos um passo atrás do anterior, pois nele é necessário declarar e instanciar um objeto do tipo Thread; Aula 21: Threads em Java: extends Thread / implements Runnable – Gil Eduardo de Andrade Thread Java A interface “Runnable” • Sendo assim, instanciamos o objeto, indicando onde o método run() será implementado, já que passamos ao construtor da classe Thread o objeto da classe que contém o método run(), após isso iniciamos a execução da thread através da chamada do método start(): – Thread t = new Thread(this); – t.start(); Aula 21: Threads em Java: extends Thread / implements Runnable – Gil Eduardo de Andrade Thread Java Exemplo: “implements Runnable” Implementa a interface Runnable Especifica que esta classe tem o método run() Instancia um objeto da classe Thread Inicia a execução da Thread Invoca o código a ser executado pela Thread. Pausa a execução da Thread em 1 segundo Aula 21: Threads em Java: extends Thread / implements Runnable – Gil Eduardo de Andrade Thread Java Exemplo Execução: extends + implements Executa uma thread para efetuar a contagem do cronometro utilizando o conceito de implementação da interface Runnable Executa uma thread para gerar um relatório em formato “.pdf” utilizando o conceito de herança da super classe Thread O código-fonte completo encontra-se disponível na seção de exemplos desta aula. Aula 21: Threads em Java: extends Thread / implements Runnable – Gil Eduardo de Andrade