SlideShare uma empresa Scribd logo
PCII
ETEC MONSENHOR ANTONIO MAGLIANO
Realizando atividades
em paralelo
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...
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].
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.
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
Thread:
Testando:
THREADS EM JAVA...
Executa enquanto
condição for verdadeira
Quando não for mais a
Thread será finalizada
Rodando a Thread
Runnable:
Testando:
Usando Runnable...
Runnable:
Testando:
Rodando 2 Threads
CRIAR UM
IDENTIFICADOR
2 Threads
ao mesmo
tempo
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.
Pausando uma Thread (Testando)
Criando um Relógio...
Crie uma classe chamada Relógio
Criando um Relógio...
Crie um formulário (JFrame) chamado RelogioUI
txtHora (JTextField) btnRelogio (JButton)
Criando um Relógio...
Codifique o clique do Botão:
Rodando !!!
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.
• Calendar
Essa 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.
Formatando Data / Hora
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
• [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

Mais conteúdo relacionado

PDF
Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)
PDF
Exercício resolvido normalização
PDF
Estruturas de Dados - Tabelas de Espalhamento (Hash Table)
PDF
Threads 01: Criação e controle de threads
PDF
Aula sobre multithreading
PDF
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
PDF
Como criar seu próprio Framework
PDF
Plano de aula sobre HTML básico
Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)
Exercício resolvido normalização
Estruturas de Dados - Tabelas de Espalhamento (Hash Table)
Threads 01: Criação e controle de threads
Aula sobre multithreading
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
Como criar seu próprio Framework
Plano de aula sobre HTML básico

Mais procurados (20)

PDF
Threads 02: Acesso exclusivo e comunicação entre threads
PDF
Segurança em banco de dados
PDF
Aula03 PHP - Estruturas Condicionais
PDF
Sistemas Operacionais - Aula 05 (Concorrência)
PDF
PHP Aula07 - conexão Com Banco de Dados
PDF
Curso de Java: Introdução a lambda e Streams
PDF
Banco de Dados I Aula 06 - Generalização e Especialização
PDF
Linguagem de Programação Java para Iniciantes
PDF
Introdução a Linguagem de Programação C
PPTX
Aula 02 - Escolha caso
PDF
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...
PDF
SI - Comunicação
DOC
Aps lista de exercícios
PPT
UML - Criando Diagramas Eficientes
PPTX
PPT Git GitHub
PDF
Threads 10: CompletableFuture
PDF
XML Metadata Interchange (XMI)
PPT
Elicitação e Análise
PDF
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
PDF
POO - 19 - Elementos Estáticos
Threads 02: Acesso exclusivo e comunicação entre threads
Segurança em banco de dados
Aula03 PHP - Estruturas Condicionais
Sistemas Operacionais - Aula 05 (Concorrência)
PHP Aula07 - conexão Com Banco de Dados
Curso de Java: Introdução a lambda e Streams
Banco de Dados I Aula 06 - Generalização e Especialização
Linguagem de Programação Java para Iniciantes
Introdução a Linguagem de Programação C
Aula 02 - Escolha caso
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...
SI - Comunicação
Aps lista de exercícios
UML - Criando Diagramas Eficientes
PPT Git GitHub
Threads 10: CompletableFuture
XML Metadata Interchange (XMI)
Elicitação e Análise
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
POO - 19 - Elementos Estáticos
Anúncio

Destaque (9)

PPT
Apostila 5 processos e threads
PDF
PDF
Threads em java
PPSX
Introdução ao java
PDF
Java recursos avançados - multithreading
PDF
Java Swing
PDF
Java Course 10: Threads and Concurrency
PPTX
ODP
Multithreading In Java
Apostila 5 processos e threads
Threads em java
Introdução ao java
Java recursos avançados - multithreading
Java Swing
Java Course 10: Threads and Concurrency
Multithreading In Java
Anúncio

Semelhante a THREADS EM JAVA: INTRODUÇÃO (20)

PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
PDF
Programação Concorrente - Gerenciamento de Threads - Parte I
PDF
Trabalhando com Threads em JAVA
PDF
Java memory model primary ref. - faq
PDF
04 - Gerenciamento de Threads - II
PDF
Programação Concorrente - Gerenciamento de Threads - Parte II
PPT
Spring & Struts
PDF
Utilitários para Programação Concorrente em Java (2005)
PPT
Java Seminar
PPT
Threads - .Net Framework 4.0
PPT
Minicurso Java
PDF
Apostilava Java EE 5 - 2007
ODP
Entendendo Frameworks web com Python
ODP
Entendendo Framework Web com Python
PPT
Aula1 c++ builder
PPTX
Computação Móvel 2012.2 - Android
PDF
Curso de ReactJS
PPTX
PDC - Engenharia - Plataforma Microsoft .NET
PDF
Python Interface Gráfica Tkinter
Curso de Java 9 - (Threads) Multitarefas.pptx
Programação Concorrente - Gerenciamento de Threads - Parte I
Trabalhando com Threads em JAVA
Java memory model primary ref. - faq
04 - Gerenciamento de Threads - II
Programação Concorrente - Gerenciamento de Threads - Parte II
Spring & Struts
Utilitários para Programação Concorrente em Java (2005)
Java Seminar
Threads - .Net Framework 4.0
Minicurso Java
Apostilava Java EE 5 - 2007
Entendendo Frameworks web com Python
Entendendo Framework Web com Python
Aula1 c++ builder
Computação Móvel 2012.2 - Android
Curso de ReactJS
PDC - Engenharia - Plataforma Microsoft .NET
Python Interface Gráfica Tkinter

Mais de ETEC Monsenhor Antonio Magliano (20)

PDF
Cadastro Desktop (Swing) com JPA MySQL
PDF
PPTX
Android - Criando um Adapter personalizado para uma Agenda de Contatos
PPTX
Android - Intents implícitas e explícitas
PPTX
Android - Criando uma ListView
PPTX
APLICAÇÃO JAVA DE CADASTRO DE NOTA FISCAL USANDO BANCO MYSQL
PPTX
CONEXÃO BANCO DE DADOS MYSQL COM JAVA
PPTX
Sockets : Introdução
PPTX
PCII: SERIALIZAÇÃO: EXEMPLOS
PPTX
PCII: SERIALIZAÇÃO EM JAVA: INTRODUÇÃO
PPTX
PCII - INTERFACES EM JAVA: EXEMPLOS
PPTX
PCII AULA 3 - INTERFACES EM JAVA
PPTX
PCII - AULA 2: HERANÇA EM JAVA
PPTX
Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)
PPTX
Visual Basic 2010 - Gerando um Projeto de Instalação (Visual Studio Installer)
PPTX
Visual Basic 2010 - Criando uma aplicação de Controle de Notas
PPTX
GSOIII Aula 8 - ANDROID - CRIANDO UMA CALCULADORA
PPTX
GSOIII - INTRODUÇÃO AO ANDROID
PDF
GSOIII (JAVA) CONEXÃO SIMPLES COM BANCO
PPTX
GSOIII (JAVA) CONEXÃO MYSQL
Cadastro Desktop (Swing) com JPA MySQL
Android - Criando um Adapter personalizado para uma Agenda de Contatos
Android - Intents implícitas e explícitas
Android - Criando uma ListView
APLICAÇÃO JAVA DE CADASTRO DE NOTA FISCAL USANDO BANCO MYSQL
CONEXÃO BANCO DE DADOS MYSQL COM JAVA
Sockets : Introdução
PCII: SERIALIZAÇÃO: EXEMPLOS
PCII: SERIALIZAÇÃO EM JAVA: INTRODUÇÃO
PCII - INTERFACES EM JAVA: EXEMPLOS
PCII AULA 3 - INTERFACES EM JAVA
PCII - AULA 2: HERANÇA EM JAVA
Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)
Visual Basic 2010 - Gerando um Projeto de Instalação (Visual Studio Installer)
Visual Basic 2010 - Criando uma aplicação de Controle de Notas
GSOIII Aula 8 - ANDROID - CRIANDO UMA CALCULADORA
GSOIII - INTRODUÇÃO AO ANDROID
GSOIII (JAVA) CONEXÃO SIMPLES COM BANCO
GSOIII (JAVA) CONEXÃO MYSQL

Último (19)

PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
COBITxITIL-Entenda as diferença em uso governança TI
Processos na gestão de transportes, TM100 Col18
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Apple Pippin Uma breve introdução. - David Glotz
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Aula04-Academia Heri- Tecnologia Geral 2025
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Aula 18 - Manipulacao De Arquivos python
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...

THREADS EM JAVA: INTRODUÇÃO

  • 3. 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...
  • 4. 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].
  • 5. 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.
  • 6. 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
  • 7. Thread: Testando: THREADS EM JAVA... Executa enquanto condição for verdadeira Quando não for mais a Thread será finalizada Rodando a Thread
  • 9. Runnable: Testando: Rodando 2 Threads CRIAR UM IDENTIFICADOR 2 Threads ao mesmo tempo
  • 10. 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.
  • 11. Pausando uma Thread (Testando)
  • 12. Criando um Relógio... Crie uma classe chamada Relógio
  • 13. Criando um Relógio... Crie um formulário (JFrame) chamado RelogioUI txtHora (JTextField) btnRelogio (JButton)
  • 14. Criando um Relógio... Codifique o clique do Botão:
  • 16. 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. • Calendar Essa 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.
  • 18. 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
  • 19. • [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