threads em java: introduÇÃo

19
PCII ETEC MONSENHOR ANTONIO MAGLIANO 2014 Prof. Aloisio

Upload: etec-mam

Post on 06-Jun-2015

284 views

Category:

Technology


3 download

DESCRIPTION

INTRODUÇÃO AO FUNCIONAMENTO DE THREADS EM JAVA

TRANSCRIPT

Page 1: THREADS EM JAVA: INTRODUÇÃO

PCII

ETEC MONSENHOR ANTONIO MAGLIANO

2014Prof. Aloisio

Page 2: THREADS EM JAVA: INTRODUÇÃO

ThreadsRealizando atividades

em paralelo

Page 3: THREADS EM JAVA: INTRODUÇÃO

Programação Concorrente“Em várias situações, precisamos "rodar duas coisas ao mesmo tempo". Imagine um programa que gera um relatório muito grande em PDF. É um processo demorado e, para dar alguma satisfação para o usuário, queremos mostrar uma barra de progresso. Queremos então gerar o PDF e ao mesmo tempo atualizar a barrinha.” [Caelum].

Assoviar e Chupar Cana...

Page 4: THREADS EM JAVA: INTRODUÇÃO

Conceito de Thread

“É uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrentemente”...“permite, por exemplo, que o usuário de um programa utilize uma funcionalidade do ambiente enquanto outras linhas de execução realizam outros cálculos e operações.” [Wikipedia].

Page 5: THREADS EM JAVA: INTRODUÇÃO

THREADS EM JAVA...

É possível executar atividades concorrentes de 2 maneiras em java:

1. Estendendo a Classe Thread

2. Criando uma classe que implemente a interface Runnable.

Page 6: THREADS EM JAVA: INTRODUÇÃO

THREADS EM JAVA...

A classe Thread do pacote java.lang é utilizada para programar linhas de execução paralelas. Ela recebe como argumento um objeto com o código que desejamos rodar.

Exemplo: Estender Thread

Método onde será executada as atividades

da Thread

Page 7: THREADS EM JAVA: INTRODUÇÃO

Thread:

Testando:

THREADS EM JAVA...Executa enquanto

condição for verdadeira

Quando não for mais a Thread será finalizada

Rodando a Thread

Page 8: THREADS EM JAVA: INTRODUÇÃO

Runnable:

Testando:

Usando Runnable...

Page 9: THREADS EM JAVA: INTRODUÇÃO

Runnable:

Testando:

Rodando 2 Threads

CRIAR UM IDENTIFICADOR

2 Threads ao mesmo

tempo

Page 10: THREADS EM JAVA: INTRODUÇÃO

Para que uma thread durma podemos utilizar o método sleep:Sintaxe: Thread.sleep ( long tempoEmMilessegundos ) ;

Pausando uma Thread

Vamos adicionar à classe Runnable um campo de tempo de pausa para a Thread a cada execução.

Page 11: THREADS EM JAVA: INTRODUÇÃO

Pausando uma Thread (Testando)

Page 12: THREADS EM JAVA: INTRODUÇÃO

Criando um Relógio...Crie uma classe chamada Relógio

Page 13: THREADS EM JAVA: INTRODUÇÃO

Criando um Relógio...Crie um formulário (JFrame) chamado RelogioUI

txtHora (JTextField) btnRelogio (JButton)

Page 14: THREADS EM JAVA: INTRODUÇÃO

Criando um Relógio...

Codifique o clique do Botão:

Page 15: THREADS EM JAVA: INTRODUÇÃO

Rodando !!!

Page 16: THREADS EM JAVA: INTRODUÇÃO

Formatando Data / Hora• Date

A data representa o tempo, um tempo é composto por ano, mês, dia atual, minuto atual, entre outras propriedades que essa classe possui.

• CalendarEssa classe pode produzir os valores de todos os campos de calendário necessários para implementar a formatação de data e hora. para obter um calendário é necessário usar o método estático getInstance().

• SimpleDateFormat Às vezes é preciso transformar um texto em uma data ou vice versa. Geralmente a classe SimpleDateFormat é mais usada quando trata-se de formatação de datas, pois já no seu construtor, quando instanciada, permite passar como argumento o formato da data desejada.

Page 17: THREADS EM JAVA: INTRODUÇÃO

Formatando Data / Hora

Page 18: THREADS EM JAVA: INTRODUÇÃO

Estender uma Thread é mais simples, mas você está usando herança apenas por "preguiça“.

Herdamos um monte de métodos mas usamos apenas o método run, e não por polimorfismo, que seria a grande vantagem.

Prefira implementar Runnable a herdar de Thread, pois você terá liberdade para ter objetos “rodáveis” de qualquer tipo e não só objetos que estendam da classe Thread.

Runnable x Thread

Page 19: THREADS EM JAVA: INTRODUÇÃO

BIBLIOGRAFIA• [CAELUM]

http://www.caelum.com.br/apostila-java-orientacao-objetos/programacao-concorrente-e-threads/

• [WIKIPEDIA] http://pt.wikipedia.org/wiki/Thread_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)

• [ORACLE JAVA THREAD]http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html

• [ORACLE JAVA RUNNABLE]http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html

• [GUJ]http://www.guj.com.br/articles/8

• [DEVMEDIA]http://www.devmedia.com.br/trabalhando-com-as-classes-date-calendar-e-simpledateformat-em-java/27401