diversos
Threads
" Tarefas simultaneamente ao mesmo tempo"
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.
A necessidade de se fazer várias coisas simultaneamente, ao mesmo tempo,igualmente, lado a lado aparece freqüentemente na computação. Para vários programas distintos, normalmente o próprio sistema operacional gerencia isso através de vários processos em paralelo. "Um fluxo de controle seqüencial isolado dentro de um programa". Como um programa seqüencial qualquer, um thread tem um começo, um fim, e uma seqüência de comandos. Entretanto, um thread em Java não é um programa, não roda sozinho, roda dentro de um programa. Threads permitem que um programa simples possa executar várias tarefas diferentes ao mesmo tempo, independentemente umas das outras.
Programas multithreaded são programas que contém vários threads, executando tarefas distintas, ao mesmo tempo.
Threads em Java
Em Java, usamos a classe Thread do pacote java.lang para criarmos linhas de execução paralelas. A classe Thread recebe como argumento um objeto com o código que desejamos rodar. Por exemplo, no programa de PDF e barra de progresso: public class GeraPDF { public void rodar () { // lógica para gerar o pdf... }
}
public class BarraDeProgresso { public void rodar () { // mostra barra de progresso e vai atualizando ela... }
}
Threads constituem uma característica bastante relevante da linguagem Java. A incorporação dos conceitos de sincronização e variáveis de condição dentro da própria linguagem permite que programadores menos experientes consigam utilizar conceitos de computação concorrente de forma bem facilitada, o que possibilita uma melhora na performance dos programas.
Em um sistema com threads, um processo com