Ich programmiere in C++, aber ich verwende nur pthread.h, keine Boost oder C++ 11 Threads.Wie sollte ein Thread-Pool in C implementiert werden?
Also versuche ich Threads zu verwenden, aber basierend auf einer meiner vorherigen Fragen (link), scheint dies nicht machbar, da Threads direkt nach Abschluss der Aufgabe beendet werden, und einer der häufigsten Gründe, einen Thread zu verwenden- Die Poolimplementierung soll den Thread-Erstellungsaufwand reduzieren, indem diese Threads für mehrere Tasks wiederverwendet werden.
Also ist die einzige andere Möglichkeit, dies in C zu implementieren, um fork() zu verwenden, und eine Pipe von den Haupt- zu untergeordneten Prozessen zu erstellen? Oder gibt es eine Möglichkeit, eine Verbindung zwischen Threads und ihren Eltern aufzubauen, von denen ich nichts weiß?
Vielen Dank im Voraus!
Hiding Thread-Erzeugung und mit etwas wake-up Ereignisse eine Warteschlange von Jobs (Funktion + Objekt) mit sollte es tun . Suchst du nach einem bestimmten Verhalten? –
Entscheiden Sie, ob Sie eine C- oder C++ - Lösung möchten. Ob die zugrunde liegende Bibliothek Pthreads ist (d. H. Nur C), ist viel weniger wichtig als die Sprache, für die Sie den Thread-Pool bereitstellen möchten. –
.. und wählen Sie dann C++ –