Desenvolvendo aplicações multithread em Java com CSP - Communicating Sequential Processes

Essa sequência de três artigos, escritos por Abhijit Belapurkar, explica como aplicar os conceitos de CSP (Communicating Sequential Processes) para desenvolver aplicações com diversas linhas de execução de modo seguro e funcional, evitando falhas comuns como deadlocks e condições de corrida.

O CSP é um método matemático para a contrução de sistemas concorrentes que tornam-se garantidamente livres de vários problemas, e o mais importante, é possível provar matematicamente que ele realmente os resolve.

A série foi publicada no developerWorks da IBM, veja os links:

CSP for Java programmers, Part 1

Part 2: Concurrent programming with JCSP

Part 3: Advanced topics in JCSP

Tinha ouvido falar de CSP faz milhares de anos (o livro de Hoare está neste link: http://www.usingcsp.com/cspbook.pdf ) , mas por falta de suporte a CSP nas linguagens de programação do mundo real, acaba-se não usando…

Mas agora o Java tem :mrgreen:

Pior de tudo é que não há só uma, mas duas implementações. Baixei até uma comparação entre as duas (JCSP e CTJ); a comparação (Using Java for Parallel Computing: JCSP versus CTJ, a Comparison) foi mencionada no artigo do Belapurkar…