Threads em java

Disponível somente no TrabalhosFeitos
  • Páginas : 8 (1979 palavras )
  • Download(s) : 0
  • Publicado : 4 de novembro de 2012
Ler documento completo
Amostra do texto
THREADS EM JAVA
Gabriel de Oliveira Ramos Roland Teodorowitsch - Orientador
Universidade Luterana do Brasil (Ulbra) – Curso de Ciência da Computação – Campus Gravataí Av. Itacolomi, 3.600 – Bairro São Vicente – CEP 94170-240 – Gravataí - RS

15 de novembro de 2009

RESUMO
Este artigo apresenta o uso de threads na linguagem de programação Java, descrevendo a classe Thread bem como ainterface Runnable. Menciona ainda algumas considerações importantes, como o ciclo de vida de threads, bem como questões sobre prioridades e sincronização de threads. Ao final, mostra um exemplo de aplicativo que utiliza threads bem como uma análise de desempenho de sua execução com e sem threads. Palavras-chave: Thread; Java.

ABSTRACT
Title: “Java Threads” This paper presents the use of threadsin Java programming language, describing the Thread class and the Runnable interface. It mentions too some important considerations about the threads lifecycle and something about threads priorities and synchronization. Finally, shows a thread application example and an analysis of its execution. Keywords: Thread; Java.

1

INTRODUÇÃO

O desempenho computacional é um assunto amplamentediscutido desde os primórdios da computação. Atualmente, a maioria dos sistemas operacionais trabalha com multiprocessamento para conferir maior desempenho na execução de processos. Em um sistema operacional multiprocessado, algoritmos de escalonamento são utilizados para dividir a utilização da CPU entre os processos em execução. Este mecanismo confere uma resposta muito mais ágil para o usuário umavez que as tarefas parecem ser executadas ao mesmo tempo. Entretanto, este mecanismo não torna a execução de duas etapas distintas de um processo paralelas, torna paralela apenas a execução dos processos entre si. É neste ponto que se torna necessário o uso de threads. Threads podem ser definidas como fluxos seqüencias de execução de um programa. Logo, um programa pode dividir partes seqüenciaisnão concorrentes de sua execução em threads distintas, conferindo paralelismo na execução destas. Claro, partes concorrentes podem ser separadas em threads também, entretanto este tipo de procedimento não confere paralelismo, não justificando o uso desta técnica. Este artigo fala sobre o uso de threads na linguagem Java. Neste contexto, este artigo descreve a classe Thread e a interfaceRunnable, que podem ser utilizadas para se trabalhar com threads em Java. Na seqüencia é abordado o ciclo de vida de uma thread na máquina virtual Java (JVM), prioridades e sincronização de threads. Está presente neste artigo, também, um exemplo de aplicativo que utiliza threads, bem como uma análise do resultado de suas execuções utilizando quantidades variadas de threads.

2

THREADS EM JAVA

Amáquina virtual Java permite que uma aplicação tenha diversos fluxos seqüências de execução rodando concorrentemente (SUN, 2009a). Para se utilizar esta funcionalidade, a API Java disponibiliza a classe Thread e a interface Runnable.

2.1

A classe Thread

A classe Thread é uma classe nativa da linguagem Java, existente desde a API 6.1, que “permite representar um fluxo independente deexecução dentro de um programa” (JANDL, 2007, p. 262). Pode-se 1

definir uma thread a partir da criação de uma classe filha de Thread, ou seja, uma subclasse. Uma subclasse de Thread exige a implementação do método run(), que contém o código a ser executado pela thread em si. A Figura 1 mostra um exemplo de código de uma classe filha de Thread que cria aleatoriamente números de 0 a 99, parando apenasao encontrar o número 50.
public class ExemploThread extends Thread { public void run() { int total = 0; while ((int)(Math.random()*100) != 50) total++; System.out.println("Sou a " + this.getName() + " e tentei " + total + " vezes."); } }

Figura 1 – Exemplo de subclasse de Thread Para criar uma thread propriamente dita a partir de uma subclasse de Thread, basta declarar um objeto desta,...
tracking img