Programação concorrente em Java

O conceito de processamento concorrente de tarefas é parte integrante da linguagem Java, através de multithreading. Todo processamento em Java está associado a alguma linha de execução, sendo que novas linhas de execução podem ser criadas a partir da linha corrente. A criação de novas threads é em geral associada a classes que implementam a interface Runnable, que define um método run(). Objetos desse tipo são utilizados para criar objetos da classe Thread, cujo método start() determina o início da execução dessa nova linha.

Por que programação concorrente?

O que são processos? Processos concorrentes? Processos paralelos? Processos distribuídos?

O que são linhas de execução (threads)? No que linhas de execução diferem de processos concorrentes?

Quais são os usos típicos da programação com múltiplas linhas de execução?

Como Java suporta múltiplas linhas de execução?

Referências

O tutorial de Java da Sun tem uma lição sobre linhas de execução intitulada Threads: Doing Two or More Tasks At Once.

Diagramas de robustez fazem parte de um processo de desenvolvimento orientado a objetos.