Artigo Java
Por: joaozitus10 • 23/11/2015 • Trabalho acadêmico • 2.912 Palavras (12 Páginas) • 442 Visualizações
Um estudo sobre Threads e para que servem
Adriano de Macedo – adrianodemacedo2@gmail.com
Francisco Assis de Aguiar Neto – fneto.04@gmail.com
João Batista de Oliveira Costa – joao.bastista@oabdf.com
José Augusto Monteiro Lima – augusto@futureautomacao.com.br
Wilton Marinho – wilton.marinho@gmail.com – Orientador
Faculdade Alvorada – DF – Bacharel em Sistema de Informação
Sepn 516 Bloco E - Brasília, DF, 70770-525 (61) 3425-5656
Abstract: This paper has as main objective to show the use of thread in java language, its definition and main show usability, since every application developed for java is multitread, ie, it is the use of two or more thread for managing process. We will also show the life cycle of a thread and its state will use practical examples showing how to initialize a thread. In the end the reader will have a practical material that will support the development of thread to perform the management of tailoring their applications.
Resumo: O artigo busca mostrar o uso de thread em linguagem Java, descrevendo os métodos adequados quando a inicialização e finalização de thread. Abordaremos temas importantes como ciclo de vida de uma thread, estado, escalonamento entre outros. Usaremos exemplos práticos para que ao longo do artigo as dúvidas possam ser sanadas, e caso o leitor queira fazer um estudo mais aprofundado sobre assunto, aconselhamos consultar as referências aqui postadas ou outros sites e livro que abordam sobre o assunto. No final o leitor terá um material prático que servirá de base ao desenvolvimento de thread para o gerenciamento adequando de suas aplicações.
1 Introdução
A utilização de thread permite executar várias tarefas em paralelo, chamado multimprocessamento. Pelo fato de sua execução ser mais rápido que um processo comum realizado por sistemas operacionais, sua utilização torna o aplicativo mais veloz em tempo de execução. Permitindo ao desenvolvedor proporcionar um melhor desempenho de seus aplicativos, utilizando de forma eficaz os recursos de processamento da máquina que irá executar a aplicação. Será apresentado neste artigo a utilização de thread usando como exemplo a linguagem de programação Java.
2 Threads
A execução de varias tarefas ao mesmo tempo, compartilhando certa fatia do processador recebe o nome de multiprocessamento. A inicialização de processo requer uma grande atividade em relação ao uso de memória e desempenho, processos executados simultaneamente são mais lentos se compararmos a um único processo sendo executado. Para melhorar o desempenho desses gerenciamentos de recursos, ultilizamos de Threads.
As threads são um modelo fundamental da execução do programa em um programa Java, e a linguagem Java e seu API fornecem um rico conjunto de aspectos da criação e gerenciamento de threads. Todos os programas Java incluem pelo menos uma única threads de controle – até mesmo programa Java Simples, consistindo apenas em um método main() é executado como uma única thread no JVM. (SILBERSCHATZ, GALVIN; GAGNE, 2008, p. 102).
O início da execução de uma thread e bem mais rápido que um processo comum realizado por sistemas operacionais e sua execução se dá a partir de um único programa ou método main().
Existem duas abordagens com relação a thread, a primeira é a utilização de mecanismo vindo do próprio sistema operacional, enquanto a segunda é uma implementação para JVM[1]. A diferença entre as duas esta relacionada à velocidade do tempo de execução, já que threads nativas do sistema operacional são bem mais rápidas se comparamos com as threads feitas para JVM.
3 Qual a finalidade das Thread
É praticamente impossível imaginar uma aplicação sem thread e como foi explicado no tópico anterior, toda aplicação Java é multithread, então a não utilização das threads é inviável. Citaremos abaixo alguns motivos que tornam a utilização de threads necessária:
- Responsabilidades de interface gráfica: vamos supor que você esteja utilizando um browser qualquer para navegar na internet e precisasse abrir uma outra aplicação. Neste caso a não utilização de threads pararia o carregamento do browser.
- Sistemas de multiprocessamento: a utilização de threads em um sistema de multiprocessamento da SO a capacidade de dividir tarefas entre todos os processadores disponíveis aumentando assim a eficiência dos processos em execução.
- Processamentos assíncronos ou em segundo plano: a sua implementação em um servidor de e-mail, por exemplo, estenderá a vários usuários simultaneamente.
4 Estados de uma Thread: Ciclo de Vida de uma Thread
O tempo de vida de uma thread esta diretamente ligado a seu estado, dessa forma as transições de estado que ocorre durante a execução de thread vão determinar o seu nascimento, inicialização, tempo de espera ate o momento que esta thread não seja mais necessária será encerrada. A execução está ligada a quatro estado que definirão funcionamento, segundo DEITEL (2009, p. 805), “A qualquer dado momento, diz que uma thread está em um dos vários estados de thread”:
5.1 Thread no estado novo
O estado é definido no momento que a Thread é criada, é alocado um espaço de memória através do operador new. Após a criação essa nova thread é registrada dentro do JVM para finalmente ser executada.
5.2 Thread no estado de executável
O estado dessa thread se caracteriza no momento de sua ativação, essa processo é definido pelo método start(). O tempo de execução é definido pelo pelo JVM ou S.O[2]. Uma thread no estado executável pode passar para o estado espera, conforme DEITEL (2009, p. 806) “Ás vezes a thread executável transita para o estado de espera enquanto espera outra thread realizar uma tarefa. Uma thread em estado espera transita de volta para o estado executável apenas quando outra thread a notifica para continuar executado”.
...