Este artigo descreve conceitos de programação paralela e distribuída, citando as vantagens e desvantagens dos principais padrões de bibliotecas disponíveis para este tipo de programação e expondo os recursos oferecidos pela linguagem de programação Java para facilitar a implementação desta classe de software.