SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
Curso de Java
by Antonio Rodrigues Carvalho Neto
Recursos
Avançados
Threads
Threads
As Threads são segmentos executados no
processador de forma sequencial.
O Java diferentemente de outras
linguagens possui primitivas de
multithreading como parte da própria
linguagem. Isto facilita a portabilidade e a
criação de aplicações multithread.
Exemplos de uso de Thread
O uso de Threads é muito comum nas aplicações, pois
normalmente não podemos esperar a execução de algumas tarefas
para iniciarmos outras.
Imagine esperar o navegador trazer todas as informações na tela
para que se possa selecionar qual link se deseja, ou então aguardar
o download de uma musica por completo antes que possa começar
a ouví-la .
Para evitar isso as aplicações utilizam-se do multiprocessamento.
No caso do tocador de músicas, uma Thread se encarrega de
baixar o arquivo de com a música e outra Thread se encarrega de
tocar os trechos ja baixados da música.
Threads (Estados)
Novo
Executável
Morto
Em Execução
Bloqueado
.start()
selecionada
Termina o
método run()
.sleep()
ou quando
termina o
tempo
quando o recurso
estiver disponível
Solicita algum método bloqueado,
ou algum recurso indisponível
Thread (Pilha)
MSN
Internet Explorer
Antivirus
Java
Processos a
serem executados
CPU
Disco
Memoria
Portas
Vai para o estado
Bloqueado
Thread
Etapas para criar uma Thread
1. Crie uma classe que implemente a interface
Runnable e sobrescreva o método public void
run(). Este método deve conter o código a ser
executado na Thread.
Sintaxe:
public class MinhaThread implements Runnable {
public void run() {
while (true) { System.out.println(“ Minha Thread “); } } }
2. Crie um objeto da classe criada
Sintaxe:
<Classe> <objeto que representa o Job> = new <Classe>();
Exemplo:
MinhaThread job = new MinhaThread();
Thread
Etapas para criar um Thread (Continuação)
1. Coloque o objeto criado em um segmento para ir para a pilha
Sintaxe:
Thread <objeto que representa o Segmento> = new Thread(<objeto que representa o Job>);
Exemplo:
Thread th1 = new Thread(job);
2. Inicie a execução do segmento colocando-o em modo
executável
Sintaxe:
<objeto que representa o Segmento>.start();
Exemplo:
th1.start();
Exercício – Sistema de Chat
Vamos criar um sistema de chat que permite
que vários clientes se conectem com o servidor.
Faça um Socket Server e uma classe Thread
que sirva para tratar cada objeto socket
separadamente. De forma que todos os
caracteres enviados pelas conexões sejam
impressos na console.
Cada vez que o accept retornar um Socket, crie
uma Thread para tratar este socket e coloque-a
na memória.
Referências
Java como programar 6ª edição
Capítulo 23
pags. 786 a 793
Use a cabeça Java 2ª edição
Capitulo 15
pags. 342 a 366
Caelum Java e Orientação a Objetos
Capitulo 19
pags. 227 a 231

Mais conteúdo relacionado

Mais procurados (18)

Implementação de Sockets em JAVA
Implementação de Sockets em JAVAImplementação de Sockets em JAVA
Implementação de Sockets em JAVA
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
Java 13
Java 13Java 13
Java 13
 
Threads
ThreadsThreads
Threads
 
Programação Concorrente - Gerenciamento de Threads - Parte II
Programação Concorrente - Gerenciamento de Threads - Parte IIProgramação Concorrente - Gerenciamento de Threads - Parte II
Programação Concorrente - Gerenciamento de Threads - Parte II
 
05 - Sincronização de Threads - I
05 - Sincronização de Threads - I05 - Sincronização de Threads - I
05 - Sincronização de Threads - I
 
Aula java[1]
Aula java[1]Aula java[1]
Aula java[1]
 
Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2
 
Fundamentos de Objetos Remotos
Fundamentos de Objetos RemotosFundamentos de Objetos Remotos
Fundamentos de Objetos Remotos
 
String tokenizer
String tokenizerString tokenizer
String tokenizer
 
Aula Tratamento de Exceções
Aula Tratamento de ExceçõesAula Tratamento de Exceções
Aula Tratamento de Exceções
 
Java 15
Java 15Java 15
Java 15
 
Java 16
Java 16Java 16
Java 16
 
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
Poo1   aula 3 - java - comentários instruções e blocos-palavras chavePoo1   aula 3 - java - comentários instruções e blocos-palavras chave
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
 
Concorrência na Linguagem de Programação
Concorrência na Linguagem de ProgramaçãoConcorrência na Linguagem de Programação
Concorrência na Linguagem de Programação
 
Thread Java
Thread JavaThread Java
Thread Java
 
Threads e sockets java
Threads e sockets javaThreads e sockets java
Threads e sockets java
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 

Destaque

Java recursos avançados - socket connection
Java   recursos avançados - socket connectionJava   recursos avançados - socket connection
Java recursos avançados - socket connectionArmando Daniel
 
Java introdução ao eclipse
Java   introdução ao eclipseJava   introdução ao eclipse
Java introdução ao eclipseArmando Daniel
 
Associações entre classes
Associações entre classesAssociações entre classes
Associações entre classesIvan Fonseca
 
Java interface gráfica layouts
Java   interface gráfica layoutsJava   interface gráfica layouts
Java interface gráfica layoutsArmando Daniel
 
Programação orientada a objetos: herança
Programação orientada a objetos: herançaProgramação orientada a objetos: herança
Programação orientada a objetos: herançaIvan Ricarte
 
Java vetores e matrizes
Java   vetores e matrizesJava   vetores e matrizes
Java vetores e matrizesArmando Daniel
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 

Destaque (11)

Java recursos avançados - socket connection
Java   recursos avançados - socket connectionJava   recursos avançados - socket connection
Java recursos avançados - socket connection
 
Threads em java
Threads em javaThreads em java
Threads em java
 
Introdução ao java
Introdução ao javaIntrodução ao java
Introdução ao java
 
THREADS EM JAVA: INTRODUÇÃO
THREADS EM JAVA: INTRODUÇÃOTHREADS EM JAVA: INTRODUÇÃO
THREADS EM JAVA: INTRODUÇÃO
 
Java code conventions
Java code conventionsJava code conventions
Java code conventions
 
Java introdução ao eclipse
Java   introdução ao eclipseJava   introdução ao eclipse
Java introdução ao eclipse
 
Associações entre classes
Associações entre classesAssociações entre classes
Associações entre classes
 
Java interface gráfica layouts
Java   interface gráfica layoutsJava   interface gráfica layouts
Java interface gráfica layouts
 
Programação orientada a objetos: herança
Programação orientada a objetos: herançaProgramação orientada a objetos: herança
Programação orientada a objetos: herança
 
Java vetores e matrizes
Java   vetores e matrizesJava   vetores e matrizes
Java vetores e matrizes
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 

Semelhante a Java recursos avançados - multithreading

Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleepCurso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleepLoiane Groner
 
Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Charles Fortes
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03thomasdacosta
 
Funcamentos de Programação Concorrente
Funcamentos de Programação ConcorrenteFuncamentos de Programação Concorrente
Funcamentos de Programação ConcorrenteDenis L Presciliano
 
04 - Gerenciamento de Threads - II
04 -  Gerenciamento de Threads - II04 -  Gerenciamento de Threads - II
04 - Gerenciamento de Threads - IIFabio Moura Pereira
 
Threads 01: Criação e controle de threads
Threads 01: Criação e controle de threadsThreads 01: Criação e controle de threads
Threads 01: Criação e controle de threadsHelder da Rocha
 
Laboratório de Programação II: Threads
Laboratório de Programação II: ThreadsLaboratório de Programação II: Threads
Laboratório de Programação II: ThreadsAlex Camargo
 
Threads 08: Executores e Futures
Threads 08: Executores e FuturesThreads 08: Executores e Futures
Threads 08: Executores e FuturesHelder da Rocha
 
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadDelphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadMario Guedes
 
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...rafaelov
 
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...rafaelov
 
Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!Mario Guedes
 

Semelhante a Java recursos avançados - multithreading (20)

Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleepCurso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
 
Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Threads - .Net Framework 4.0
Threads - .Net Framework 4.0
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03
 
Funcamentos de Programação Concorrente
Funcamentos de Programação ConcorrenteFuncamentos de Programação Concorrente
Funcamentos de Programação Concorrente
 
Sistemas Distribuídos - Multithreading
Sistemas Distribuídos - MultithreadingSistemas Distribuídos - Multithreading
Sistemas Distribuídos - Multithreading
 
04 - Gerenciamento de Threads - II
04 -  Gerenciamento de Threads - II04 -  Gerenciamento de Threads - II
04 - Gerenciamento de Threads - II
 
Threads 01: Criação e controle de threads
Threads 01: Criação e controle de threadsThreads 01: Criação e controle de threads
Threads 01: Criação e controle de threads
 
Curso de Java: Threads
Curso de Java: ThreadsCurso de Java: Threads
Curso de Java: Threads
 
Laboratório de Programação II: Threads
Laboratório de Programação II: ThreadsLaboratório de Programação II: Threads
Laboratório de Programação II: Threads
 
Threads 08: Executores e Futures
Threads 08: Executores e FuturesThreads 08: Executores e Futures
Threads 08: Executores e Futures
 
Net - Threads
Net - ThreadsNet - Threads
Net - Threads
 
12 threads
12 threads12 threads
12 threads
 
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadDelphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
 
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
 
threads e-sockets-em-java
 threads e-sockets-em-java threads e-sockets-em-java
threads e-sockets-em-java
 
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
 
Threads
ThreadsThreads
Threads
 
Java1
Java1Java1
Java1
 
THREADS JAVA
THREADS JAVATHREADS JAVA
THREADS JAVA
 
Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!
 

Mais de Armando Daniel

Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)Armando Daniel
 
Java orientação a objetos (introdução)
Java   orientação a objetos (introdução)Java   orientação a objetos (introdução)
Java orientação a objetos (introdução)Armando Daniel
 
Java orientação a objetos (introdução) - exercicios
Java   orientação a objetos (introdução) - exerciciosJava   orientação a objetos (introdução) - exercicios
Java orientação a objetos (introdução) - exerciciosArmando Daniel
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)Armando Daniel
 
Java orientação a objetos (herança)
Java   orientação a objetos (herança)Java   orientação a objetos (herança)
Java orientação a objetos (herança)Armando Daniel
 
Java interface gráfica swing
Java   interface gráfica swingJava   interface gráfica swing
Java interface gráfica swingArmando Daniel
 

Mais de Armando Daniel (6)

Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
 
Java orientação a objetos (introdução)
Java   orientação a objetos (introdução)Java   orientação a objetos (introdução)
Java orientação a objetos (introdução)
 
Java orientação a objetos (introdução) - exercicios
Java   orientação a objetos (introdução) - exerciciosJava   orientação a objetos (introdução) - exercicios
Java orientação a objetos (introdução) - exercicios
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)
 
Java orientação a objetos (herança)
Java   orientação a objetos (herança)Java   orientação a objetos (herança)
Java orientação a objetos (herança)
 
Java interface gráfica swing
Java   interface gráfica swingJava   interface gráfica swing
Java interface gráfica swing
 

Java recursos avançados - multithreading

  • 1. Curso de Java by Antonio Rodrigues Carvalho Neto
  • 4. Threads As Threads são segmentos executados no processador de forma sequencial. O Java diferentemente de outras linguagens possui primitivas de multithreading como parte da própria linguagem. Isto facilita a portabilidade e a criação de aplicações multithread.
  • 5. Exemplos de uso de Thread O uso de Threads é muito comum nas aplicações, pois normalmente não podemos esperar a execução de algumas tarefas para iniciarmos outras. Imagine esperar o navegador trazer todas as informações na tela para que se possa selecionar qual link se deseja, ou então aguardar o download de uma musica por completo antes que possa começar a ouví-la . Para evitar isso as aplicações utilizam-se do multiprocessamento. No caso do tocador de músicas, uma Thread se encarrega de baixar o arquivo de com a música e outra Thread se encarrega de tocar os trechos ja baixados da música.
  • 6. Threads (Estados) Novo Executável Morto Em Execução Bloqueado .start() selecionada Termina o método run() .sleep() ou quando termina o tempo quando o recurso estiver disponível Solicita algum método bloqueado, ou algum recurso indisponível
  • 7. Thread (Pilha) MSN Internet Explorer Antivirus Java Processos a serem executados CPU Disco Memoria Portas Vai para o estado Bloqueado
  • 8. Thread Etapas para criar uma Thread 1. Crie uma classe que implemente a interface Runnable e sobrescreva o método public void run(). Este método deve conter o código a ser executado na Thread. Sintaxe: public class MinhaThread implements Runnable { public void run() { while (true) { System.out.println(“ Minha Thread “); } } } 2. Crie um objeto da classe criada Sintaxe: <Classe> <objeto que representa o Job> = new <Classe>(); Exemplo: MinhaThread job = new MinhaThread();
  • 9. Thread Etapas para criar um Thread (Continuação) 1. Coloque o objeto criado em um segmento para ir para a pilha Sintaxe: Thread <objeto que representa o Segmento> = new Thread(<objeto que representa o Job>); Exemplo: Thread th1 = new Thread(job); 2. Inicie a execução do segmento colocando-o em modo executável Sintaxe: <objeto que representa o Segmento>.start(); Exemplo: th1.start();
  • 10. Exercício – Sistema de Chat Vamos criar um sistema de chat que permite que vários clientes se conectem com o servidor. Faça um Socket Server e uma classe Thread que sirva para tratar cada objeto socket separadamente. De forma que todos os caracteres enviados pelas conexões sejam impressos na console. Cada vez que o accept retornar um Socket, crie uma Thread para tratar este socket e coloque-a na memória.
  • 11. Referências Java como programar 6ª edição Capítulo 23 pags. 786 a 793 Use a cabeça Java 2ª edição Capitulo 15 pags. 342 a 366 Caelum Java e Orientação a Objetos Capitulo 19 pags. 227 a 231