de | en

ThreadPool

Die hier zur Verfügung stehende Bibliothek implementiert einen Thread-Pool auf Basis der POSIX-Threads. Dabei werden bei der Initialisierung p Threads innerhalb des Pools angelegt, welche solange blockieren, bis eine Aufgabe an den Thread-Pool übergeben wird. Dabei wird ein nichtgenutzter Thread für die weitere Abarbeitung verwendet. Sollte kein Thread zur Verfügung stehen, blockiert die Aufruffunktion, bis dies der Fall ist, d.h. ein früher gestarteter Thread seine Arbeit beendet.

Die Bibliothek wurde in C++ geschrieben und sollte auf allen gängigen UNiX-Systemen lauffähig sein, wobei Linux, Solaris, AIX und HP-UX getestet wurden.

Die Benutzung der Bibliothek unterliegt den Bestimmungen der GNU Lesser General Public Lizenz.

Dokumentation

Die Beschreibung des Thread-Pools ist leider nur in englischer Sprache verfügbar. Sie steht als PDF-Datei zur Verfügung.

Quelltext

Die Benutzung der Bibliothek unterliegt den Bestimmungen der GNU Lesser General Public Lizenz.

v0.8

  • Verwendung von STL-Containern anstelle der eigenen Klassen. Damit wurden auch einige Speicherprobleme beseitigt (Dank an Markus Schwienbacher für den Hinweis).

v0.7

  • Vereinfachung des Thread-Pools mit einigen Fehlerkorrekturen (keine “race conditions” mehr)
  • Vereinfachte Konditionsvariablen
  • einfachere Listenschnittstelle (analog zur STL)
  • keine speziellen Typen mehr nötig (types.hh)

v0.6

  • modifizierte Schnittstellen für Mutex und Konditionsvariablen
  • Änderungen an der Job-Synchronisation, um Blockierungen zu vermeiden
  • mögliche doppelte Freigabe eines Mutex wurde unterbunden

v0.5.1

  • Änderungen an der Job-Synchronisation, um Blockierungen zu vermeiden
  • delete-Schalter bei der Übergabe von Job-Objekten hinzugefügt; sorgt für ein automatisches Löschen (delete) des Objektes
  • Dokumentation geändert (danke an Jean Bouhnik)

v0.5

  • erste öffentliche Version