Die Verbindung von Rechner- und Kommunikationstechnologie hat zur Konstruktion von Rechnernetzen geführt. Mit ihnen kann eine Dezentralisierung der Informationsverarbeitung erfolgen. Dezentralisierung wird mit verteilten Systemen erreicht. Verteiltheit impliziert Nebenläufigkeit.
Die nebenläufige Aktivitäten heiß in der Programmiersprache Java ``Programmfäden'' oder Threads. Die meinsten Programmiersprachen bieten keine eingebaute Unterstützung für Threads: Threads werden dort wie alle anderen Aufrufe an das System behandelt. In Java dagegen sind Threads integraler der Sprache und nahtlos in das Konzept der Objektorientierung eingebaut. Threads gehören -auch in Java- zu den fortgeschrittenen Techniken der Programmierung.
Bei der Programmierung mit mehreren Threads lauert die Gefahr von Verklemmungen (Deadlocks). Die Korrektheit nebenläufiger Programme, z.B. Verklemmungsfreiheit, läßt sich mit der Hilfe formaler Methoden zusichern oder nachweisen -- auch wenn dies mit eingem Aufwandverbunden ist.
CSP - Communicating Sequential Processes - ist eine der bekanntesten Methode, die fuuml;r die Beschreibung nebenläufiger Programme geeignet sind. In CSP wird ein nebenläufiges Programm in mehrere Teile zerlegt, die parallel laufen und miteinander kommunizieren. Die Komposition der Teilprogramme ist nicht komplizierter als die sequentielle Komposition von Anweisungen in traditionellen Programmiersprachen. Das Werkzeug FDR -- Failures Divergence Refinement -- bietet die Möglichkeit zur automatischen Prüfung und Validation nebenläufiger Programme.