A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Threads: Introdução e Implementação

Apresentações semelhantes


Apresentação em tema: "Threads: Introdução e Implementação"— Transcrição da apresentação:

1 Threads: Introdução e Implementação
Professor: Hyggo Almeida

2 O que vimos na última aula?
Visão crítica sobre padrões Revisão final Qual o impacto do “E se”? Over Engineering Threads: Introdução e Implementação

3 O que veremos hoje? Threads Introdução Implementação
Threads: Introdução e Implementação

4 O que é uma Thread ? Uma thread é um contexto ou linha de execução
“Vários programas executando em um mesmo programa” Vários contextos em abas Threads: Introdução e Implementação

5 O que é uma Thread ? Programas “normais” (single thread) possuem apenas uma linha de execução... Threads: Introdução e Implementação

6 O que é uma Thread ? Programas com mais de uma thread (multithreaded) possuem mais de uma linha de execução dentro do programa... Threads: Introdução e Implementação

7 O que é uma Thread ? Parece ser um processo...
...mas compartilha o mesmo “espaço de endereçamento” ...é muito rápido chavear entre threads... Uma thread possui... Uma pilha de execução para chamar métodos, passar parâmetros, alocar variáveis locais... Um Program Counter... Uma thread é um fluxo único de controle seqüencial dentro de um programa Threads: Introdução e Implementação

8 As classes Timer e TimerTask
Antes de implementarmos uma thread... ...vamos utilizar objetos que utilizam thread para executar o seu trabalho Classe Timer Utilizada para escalonar tarefas Escalona instâncias de TimerTask Threads: Introdução e Implementação

9 Exemplo de implementação...
public class Reminder { Timer timer; public Reminder(int seconds) { timer = new Timer(); timer.schedule(new RemindTask(),seconds*1000); } class RemindTask extends TimerTask { public void run() { System.out.println(“Tarefa realizada.”); timer.cancel(); //Finaliza o Timer public static void main(String args[]) { new Reminder(5); System.out.println(“Tarefa escalonada.”);

10 As classes Timer e TimerTask
Vamos implementar e ver o resultado! E se usássemos Thread.sleep() diretamente??? Tarefa escalonada. (depois de 5 segundos) Tarefa realizada! Threads: Introdução e Implementação

11 Implementando Threads
Duas formas: Extensão da Classe Thread Implementação da interface Runnable Qual escolher? Se sua classe precisa herdar de uma outra classe do seu modelo de negócio... use interface! Threads: Introdução e Implementação

12 Estendendo Thread public class SimpleThread extends Thread {
public SimpleThread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System.out.println(i + “ ” + getName()); try { sleep((long)(Math.random() * 1000)); } catch (InterruptedException e) {} System.out.println(“Feito! ” + getName()); Threads: Introdução e Implementação

13 Utilizando a implementação com Thread
public class TestTwoThreads { public static void main(String[] args) { new SimpleThread("hyggo").start(); new SimpleThread("almeida").start(); System.out.println("Thread principal finalizada!"); } Threads: Introdução e Implementação

14 Implementando Runnable
public class SimpleThread implements Runnable { public void run() { for (int i = 0; i < 10; i++) { System.out.println(i + “ ” + Thread.currentThread().getName()); try { Thread.sleep((long)(Math.random() * 1000)); } catch (InterruptedException e) {} } System.out.println(“Feito! ”+ Thread.currentThread().getName()); Threads: Introdução e Implementação

15 Utilizando a implementação com Runnable
public class TestTwoThreads { public static void main(String[] args) { new Thread(new SimpleThread(),"hyggo").start(); new Thread(new SimpleThread(),"almeida").start(); System.out.println("Thread principal finalizada!"); } Threads: Introdução e Implementação

16 O que vimos hoje? Threads Introdução Implementação
Threads: Introdução e Implementação

17 O que veremos na próxima aula?
Threads Ciclo de vida Escalonamento de Threads Threads: Introdução e Implementação

18 Dúvidas? ? Threads: Introdução e Implementação


Carregar ppt "Threads: Introdução e Implementação"

Apresentações semelhantes


Anúncios Google