Verteilte Systeme

Kapitel 2 - Verteilte Anwendungen

Wie kann das Multithreadding effizienter gestaltet werden?

Mit sogenannten Thread Pools.
  • Der Grundlegende Gedanke ist der, dass ein einmal gestarteter Thread nicht nach dem Beenden einer Verbindung geschlossen wird, sondern für mehrere Verbindungen eingestzt werden kann.
  • Der Service verwaltet also alle gestarteten Threads in einem Pool. Thread Pools sind also Sammelbehälter für Working Threads.
  • Meist wird bereits schon vor dem ersten Verbindungsaufbau eine bestimmte Anzahl an Working Threads gestartet und in den Thread Pool gelegt.
  • Threads die gerade keine Verbindung bearbeiten, werden blockiert und warten innerhalb des Pools in einer Warteschlange auf den nächsten Auftrag.
  • Sobald eine neue Verbindung entegegen genommen wird, wird der Socket dem nächsten Thread in der Warteschlange zugeordnet. Dieser beginnt dann gleich mit der Kommunikation mti dem Client.

Diskussion