Professor: Hyggo Almeida

Slides:



Advertisements
Apresentações semelhantes
Multiplicação Matriz-Vector
Advertisements

Projeto de Sistemas de Software Luana Lachtermacher
Programando com Threads em C
2008 LCG/UFRJ. All rights reserved. 1 Standard Template Library STL Claudio Esperança Paulo Roma Cavalcanti.
Técnicas e Projeto de Sistemas André Mesquita Rincon Processo de Software Técnico Subsequente – Módulo III.
Técnicas e Projeto de Sistemas
Prof. Celso Gramática Prof. Celso
Prof. Celso Gramática.
FORTRAN 90 Denise Yumi Takamura.
INTRODUÇÃO À COMPUTAÇÃO PARALELA
Trac é uma ferramenta open source e de interface web para controle de projetos de desenvolvimento de software. O objetivo do software é ajudar o desenvolvedor.
Container Managed Persistent Bean Kellyton Brito Projeto Compose
Desempenho de Tratores aula 3
Algoritmos com laços (ou seja, com conjuntos de instruções que devem ser executados repetidas vezes)
Teste Estrutural de Software
Teste Funcional de Software
O que é XtremWeb(XW)? Projeto de pesquisa relacionado a light-weight Grids. Plataforma Open Source para a elaboração de grades baseadas em PCs, desenvolvida.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker.
Servidores e Programação Web Redes de Computadores.
Profa. Graziela Santos de Araújo Algoritmos e Programação II, 2010
Geração de Código Cap. 8. Introdução Fase final para um compilador Entrada é uma representação intermediária do código fonte e a saída é um programa para.
Fazendo Slides no Power Point
O Fluxo de Testes © Alexandre Vasconcelos
TerraRadar Aplicativo para tratamento de imagem de Radar Utilizado através de dois tipos de interface : TerraView - (QT) Browser - (PHP)
Design Patterns – Composite e Visitor
Templates e Questões de Design Programas são geralmente construídos segundo um design que é relativamente bem mapeado nos mecanismos oferecidos pela linguagem.
Planejando seu site Objetivos Abordagem Sílvia Dota.
Funções de um computador
Sistemas de Tutoria Inteligente (STI) Visam proporcionar instrução de forma adaptada a cada aprendiz. STIs adaptam o processo de instrução a determinadas.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo XI Noções de Estruturas de Dados.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo XI Encadeamento de Estruturas por Ponteiros.
TA 733 A – Operações Unitárias II
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
5W1H.
Business Process Management e Workflow - jBPM Aluno: Filipe Ferraz Salgado Orientador: Francisco Reverbel Novembro 2006.
ALOCAÇÃO DINÂMICA DE MEMÓRIA
TÉCNICAS DE CODIFICAÇÃO DE SINAIS
Interpolação Introdução Conceito de Interpolação
Resolução de Sistemas Não-Lineares- Parte 1
7. INTEGRAÇÃO NUMÉRICA Parte 3
Organização de Sistemas de Computadores
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
Listas Lineares.
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Sistema de Planejamento da Produção
Recursividade Estrutura de Dados.
Marco Antonio Montebello Júnior
LINGUAGENS DE PROGRAMAÇÃO
Sistemas de Informação Prof. Me. Everton C. Tetila Modelo de dados relacional Banco de Dados I.
Objetos Distribuídos - Programação Distribuída Orientado a Objetos Luiz Affonso Guedes.
Programação Concorrente com Thread Java
Stored Procedure, Function and Trigger
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
INPE / CAP-334 Celso L. Mendes Aula 4-D(1) Reestruturação de Programas em Sistemas Vetoriais (II) Tópicos: Suporte à Paralelização Vetorização.
Usando Java no Oracle Por Edson Almeida Junior
O Mecanismo de Threads em Java 2. Criar uma classe herdeira da super classe Thread public class minhaThread extends Thread{ public class minhaThread extends.
Threads: Introdução e Implementação
Concorrência em Java Threads em Java.
Threads, Gerenciamento de Threads Pool de Threads, Grupo de Threads Variáveis Locais à Threads.
Sincronização com Locks. Locks É um mecanismo de sincronização de processos/threads em que estas devem ser programadas de modo que seus efeitos sobre.
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 30 (1) Empacotamento de Dados em MPI Tópicos: Buffer de Mensagem Empacotamento/Desempacotamento.
Mapeamento de CSP para JCSP Patrícia Muniz (pmf) Rafael Duarte (rmd)
Java Generics Adeline de Sousa Silva.
ArrayList e Genéricos Profs. PROG2 - UNISINOS.
Tipos Especiais de Listas
Socket em Java.
Grupos de Threads em Java
Programação em Java Threads Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
Programação Gráfica em Java Animação
Rosemary Silveira Filgueiras Melo
Transcrição da apresentação:

Professor: Hyggo Almeida Pool de Threads Professor: Hyggo Almeida

O que vimos na última aula? Threads Sincronização Pool de Threads

O que veremos hoje? Threads Pool Pool de Threads

Pool de Threads Um pool de threads é uma coleção de threads disponíveis para realizar tarefas Melhor desempenho quando se executa um grande número de tarefas Limitação de recursos disponíveis Com um pool, não é necessário gerenciar o ciclo de vida das threads Pool de Threads

Pool de Threads Como implementar? Instanciar uma implementação da interface ExecutorService ThreadPoolExecutor ScheduledThreadPoolExecutor Pode-se definir... O número básico e máximo do pool (número de threads) O tipo de estrutura de dados para armazenar as tarefas Como tratar tarefas rejeitadas Como criar e terminar threads Pool de Threads

Pool de Threads Há métodos fábrica na classe Executors para a criação de pools... newFixedThreadPool(int) - Cria um pool com número fixo de threads e fila ilimitada de tarefas newCachedThreadPool() - Cria um pool de threads sem limite, com recuperação automática de threads É uma boa opção quando há muitas tarefas pequenas a executar assincronamente. Threads não usadas por 60 segundos são removidas newSingleThreadExecutor() - Cria uma thread única em background com fila ilimitada de tarefas As tarefas serão executadas seqüencialmente Pool de Threads

Pool de Threads Exemplo com Runnable public class WorkerThread implements Runnable { private int workerNumber; public WorkerThread(int number) { workerNumber = number; } public void run() { for (int i=0;i<=100;i+=20) { // Realiza algum trabalho... System.out.println(“Worker:” + workerNumber + ", %: " + i); try { Thread.sleep((int)(Math.random() * 1000)); } catch (InterruptedException e) {} Pool de Threads

Pool de Threads Exemplo com Runnable 2 threads e 5 tarefas import java.util.concurrent.*; public class ThreadPoolTest { public static void main(String[] args) { ExecutorService tpes = Executors.newFixedThreadPool(2); WorkerThread[] workers = new WorkerThread[5]; for (int i = 0; i < workers.length; i++) { workers[i] = new WorkerThread(i); tpes.execute(workers[i]); } tpes.shutdown(); Pool de Threads

Pool de Threads Vamos implementar o exemplo com Runnable

Pool de Threads Exemplo com Callable import java.util.concurrent.*; public class CallableWorkerThread implements Callable { private int workerNumber; public CallableWorkerThread(int number) { workerNumber = number; } public Object call() { for (int i = 0; i <= 100; i += 20) { // Realiza algum trabalho... System.out.println(“Worker:” + workerNumber + ", %: " + i); try { Thread.sleep((int)(Math.random() * 1000)); } catch (InterruptedException e) {} return(new Integer(workerNumber)); Pool de Threads

Pool de Threads Exemplo com Callable public class ThreadPoolTest2 { public static void main(String[] args) { ExecutorService tpes = Executors.newCachedThreadPool(); CallableWorkerThread workers[] = new CallableWorkerThread[4]; Future futures[] = new Future[4]; for (int i = 0; i < workers.length; i++) { workers[i] = new CallableWorkerThread(i); futures[i]=tpes.submit(workers[i]); } try { System.out.println("Ending worker: " +futures[i].get()); } catch (Exception e) {} tpes.shutdown(); Pool de Threads

Pool de Threads Vamos implementar o exemplo com Callable

O que vimos hoje? Threads Pool Pool de Threads

Dúvidas? ? Pool de Threads