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