0 people following this project (follow)

Project Description
MMessaging ist eine Klassenbibliothek, die es ermöglicht, Komponenten zu entwickeln, die nach außen hin mit anderen Komponenten asynchron und multithreaded mittels Messages kommunizieren, aber intern in synchronem und singlethreaded-artigem Programmierstil programmiert werden, d.h. ohne die Notwendigkeit des synchronisierten Zugriffs auf Daten.

Jede Komponente repräsentiert dabei einen Thread, der nach und nach Messages aus einer Messagequeue (Messagechannel) holt und sie mit einer vom Entwickler der Komponente definierten Messagehandler-Methode verarbeitet. Innerhalb der Messagehandler-Methode kann man synchron mittels einer WaitOnMessage(..) Methode auf andere Messages warten, so dass der Programmierfluss nicht durch asynchronen Nachrichtenaustausch unterbrochen wird.
Da eine Komponente (sinngemäß) nur einen Thread repräsentiert, kann man innerhalb der Handlermethode völlig unsynchronisiert auf die privaten Daten der Komponente zugreifen. Das erleichtert die Programmierung parallel läufiger Prozesse erheblich.

Last edited May 1 at 10:19 AM by thgerlach, version 5