<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Thread-Pool]]></title><description><![CDATA[<p>Ich beschäftige mich zur Zeit mit der Parallelen Programmierung unter Verwendung von Threads. Ich habe wiederkehrende Probleme, also ein Petri-Netz das einen Kreis bildet. Daten einlesen, verarbeiten, ablegen - und das immer wieder. Hierbei kommt nun eine grundsätzliche Designfrage auf:</p>
<p>Nun Lese ich immer wieder von einem &quot;Thread-Pool&quot;. Dabei erstellt man anscheinend einen Anzahl von Threads und übergibt ihnen ganz dynamisch zur Laufzeit eine gerade anstehende Aufgabe zu ausführen.<br />
Das andere Modell, welches ich zur Zeit verfolge, ist die Erstellung von mehreren Modulen die jeweils eine separate Aufgabe übernehmen und jeweils in einem eigenen Thread laufen.</p>
<p>Nun frage ich mich was ist besser/richtig? Sollte man sich dabei an der Hardware orientieren, also auf einem Doppelkernprozessor nur zwei Threads (als Pool) starten und ihnen dynamisch Aufgaben übergeben, weil man dann weniger Threadwechsel hat? Oder ist das dynamische Zuweisen von aufgaben an die Threads eigentlich implizit auch ein Threadwechsel mit noch mehr Aufwand?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/277769/thread-pool</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 17:22:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/277769.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 24 Nov 2010 10:19:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Thread-Pool on Wed, 24 Nov 2010 10:19:41 GMT]]></title><description><![CDATA[<p>Ich beschäftige mich zur Zeit mit der Parallelen Programmierung unter Verwendung von Threads. Ich habe wiederkehrende Probleme, also ein Petri-Netz das einen Kreis bildet. Daten einlesen, verarbeiten, ablegen - und das immer wieder. Hierbei kommt nun eine grundsätzliche Designfrage auf:</p>
<p>Nun Lese ich immer wieder von einem &quot;Thread-Pool&quot;. Dabei erstellt man anscheinend einen Anzahl von Threads und übergibt ihnen ganz dynamisch zur Laufzeit eine gerade anstehende Aufgabe zu ausführen.<br />
Das andere Modell, welches ich zur Zeit verfolge, ist die Erstellung von mehreren Modulen die jeweils eine separate Aufgabe übernehmen und jeweils in einem eigenen Thread laufen.</p>
<p>Nun frage ich mich was ist besser/richtig? Sollte man sich dabei an der Hardware orientieren, also auf einem Doppelkernprozessor nur zwei Threads (als Pool) starten und ihnen dynamisch Aufgaben übergeben, weil man dann weniger Threadwechsel hat? Oder ist das dynamische Zuweisen von aufgaben an die Threads eigentlich implizit auch ein Threadwechsel mit noch mehr Aufwand?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985017</guid><dc:creator><![CDATA[fabske]]></dc:creator><pubDate>Wed, 24 Nov 2010 10:19:41 GMT</pubDate></item><item><title><![CDATA[Reply to Thread-Pool on Wed, 24 Nov 2010 10:44:49 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Zum einen, bei einen Thread-Pool erstellst du nicht eine bestimmte Anzahl von Threads, sondern du bedienst dich aus einen Pool von offenen Threads. Die Anzahl der Threads händelt das Betriebssystem für dich und sagst immer nur gebe mir einen Thread, und führe dies damit aus.<br />
Bin mir grad nur nicht mehr sicher, ob der Pool Prozess-weit zählt, oder ob er nicht sogar noch höher angesiedelt ist.</p>
<p>Und den Threadwechsel hast du ja sowieso mit anderen laufenden Programmen. Und nach Standard ist es auch nicht gewiss welcher Thread welchen Prozessor zugewiesen wird, dies kann ebenso wechseln. Aber dies könntest du über Befehle festlegen, aber nicht wenn du den Thread-Pool verwendest.</p>
<p>MfG marco</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985030</guid><dc:creator><![CDATA[Marc-O]]></dc:creator><pubDate>Wed, 24 Nov 2010 10:44:49 GMT</pubDate></item><item><title><![CDATA[Reply to Thread-Pool on Wed, 24 Nov 2010 16:06:24 GMT]]></title><description><![CDATA[<p>Marc-O schrieb:</p>
<blockquote>
<p>Hallo</p>
<p>Zum einen, bei einen Thread-Pool erstellst du nicht eine bestimmte Anzahl von Threads, sondern du bedienst dich aus einen Pool von offenen Threads. Die Anzahl der Threads händelt das Betriebssystem für dich und sagst immer nur gebe mir einen Thread, und führe dies damit aus.</p>
</blockquote>
<p>Bei welchem Betriebssystem soll das so sein?</p>
<p>Marc-O schrieb:</p>
<blockquote>
<p>Bin mir grad nur nicht mehr sicher, ob der Pool Prozess-weit zählt, oder ob er nicht sogar noch höher angesiedelt ist.</p>
</blockquote>
<p>Zumindest in Windows und Unixen sind Threads Bestandteil des Prozesses, somit kann ein Threadpool nicht &quot;höher&quot; angesiedelt sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985219</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 24 Nov 2010 16:06:24 GMT</pubDate></item><item><title><![CDATA[Reply to Thread-Pool on Wed, 24 Nov 2010 17:11:55 GMT]]></title><description><![CDATA[<p>Marc-Os Aussagen waren für mich auch etwas verwirrend. Ich erstelle Threads doch immer in der Anwendung. Das heißt ich muss in der Anwendung einen Thread-Pool anlegen. Die Frage ist nur, was bringt mir ein Thread-Pool?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985264</guid><dc:creator><![CDATA[fabske]]></dc:creator><pubDate>Wed, 24 Nov 2010 17:11:55 GMT</pubDate></item><item><title><![CDATA[Reply to Thread-Pool on Wed, 24 Nov 2010 18:36:46 GMT]]></title><description><![CDATA[<p>fabske schrieb:</p>
<blockquote>
<p>Die Frage ist nur, was bringt mir ein Thread-Pool?</p>
</blockquote>
<p>Der Performance-Overhead, der durch das Erstellen immer wieder neuer Threads entsteht, entfällt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985305</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 24 Nov 2010 18:36:46 GMT</pubDate></item><item><title><![CDATA[Reply to Thread-Pool on Wed, 24 Nov 2010 19:41:01 GMT]]></title><description><![CDATA[<p>Guck Dir mal den Wikipedia-Artikel zum Thema an. Der erklärt des ganz gut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985344</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 24 Nov 2010 19:41:01 GMT</pubDate></item><item><title><![CDATA[Reply to Thread-Pool on Wed, 24 Nov 2010 20:15:57 GMT]]></title><description><![CDATA[<p>fabske schrieb:</p>
<blockquote>
<p>Marc-Os Aussagen waren für mich auch etwas verwirrend. Ich erstelle Threads doch immer in der Anwendung. Das heißt ich muss in der Anwendung einen Thread-Pool anlegen. Die Frage ist nur, was bringt mir ein Thread-Pool?</p>
</blockquote>
<p>Du musst nicht zwangsweise einen Thread-Pool anlegen. Wenn du nicht gerade alle halbe Sekunde einige Threads startest und beendest, wird es ohne Threadpool nicht messbar langsamer sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985361</guid><dc:creator><![CDATA[öhööhhhhhhhhcö]]></dc:creator><pubDate>Wed, 24 Nov 2010 20:15:57 GMT</pubDate></item></channel></rss>