<?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 Beendigung abhandeln]]></title><description><![CDATA[<p>Ich besitze eine Liste aus 4 threads, die stätig mit Aufgaben gefüttert werden sollen.<br />
Allerdings muss ich dazu wissen, wann die Threads fertig sind, da sie weder nach &quot;fire and forget&quot; oder als Daemon laufen sollen.<br />
Ich bin normalerweise daran gewöhnt, dass ich einem Thread eine Prozedur geben kann, die nach seiner Beendigung ausgeführt wird.<br />
Ich habe nichts gefunden, dass mir weiterhilft.</p>
<p>Hier ein keiner Abriss, wie das ungefähr aussehen wird:</p>
<p>(Fehler sind möglich, da aus Gedächtnis rekonstruiert)</p>
<pre><code class="language-cpp">class WorkerPool {
private:
    std::vector &lt;std::thread&gt; Workers;
    // Vielleicht auch: std::vector &lt;std::pair &lt;std::thread, bool&gt; &gt; Workers;
    void AddTask(void (Task*)(PARAM_TYPE parm));
}

WorkerPool::AddTask(void (Task*)(PARAM_TYPE parm)) {
    // Thread auswählen? Aber welcher hat den grad nichts zu tun?
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/301561/thread-beendigung-abhandeln</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 21:43:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/301561.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Mar 2012 22:33:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Thread Beendigung abhandeln on Thu, 29 Mar 2012 22:33:28 GMT]]></title><description><![CDATA[<p>Ich besitze eine Liste aus 4 threads, die stätig mit Aufgaben gefüttert werden sollen.<br />
Allerdings muss ich dazu wissen, wann die Threads fertig sind, da sie weder nach &quot;fire and forget&quot; oder als Daemon laufen sollen.<br />
Ich bin normalerweise daran gewöhnt, dass ich einem Thread eine Prozedur geben kann, die nach seiner Beendigung ausgeführt wird.<br />
Ich habe nichts gefunden, dass mir weiterhilft.</p>
<p>Hier ein keiner Abriss, wie das ungefähr aussehen wird:</p>
<p>(Fehler sind möglich, da aus Gedächtnis rekonstruiert)</p>
<pre><code class="language-cpp">class WorkerPool {
private:
    std::vector &lt;std::thread&gt; Workers;
    // Vielleicht auch: std::vector &lt;std::pair &lt;std::thread, bool&gt; &gt; Workers;
    void AddTask(void (Task*)(PARAM_TYPE parm));
}

WorkerPool::AddTask(void (Task*)(PARAM_TYPE parm)) {
    // Thread auswählen? Aber welcher hat den grad nichts zu tun?
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2196817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2196817</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Thu, 29 Mar 2012 22:33:28 GMT</pubDate></item><item><title><![CDATA[Reply to Thread Beendigung abhandeln on Thu, 29 Mar 2012 23:33:16 GMT]]></title><description><![CDATA[<p>lass die Threads selbst den nächsten Task abrufen und weiß nicht du den zu</p>
<p>greetz KN4CK3R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2196826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2196826</guid><dc:creator><![CDATA[KN4CK3R]]></dc:creator><pubDate>Thu, 29 Mar 2012 23:33:16 GMT</pubDate></item><item><title><![CDATA[Reply to Thread Beendigung abhandeln on Fri, 30 Mar 2012 00:32:32 GMT]]></title><description><![CDATA[<p>KN4CK3R schrieb:</p>
<blockquote>
<p>lass die Threads selbst den nächsten Task abrufen und weiß nicht du den zu</p>
</blockquote>
<p>hmmm...</p>
<p>Ich glaube ich klebe in einem Funktionsobjekt die übergebene Prozedur und eine weitere Prozedur, die das macht, zusammen.<br />
Oder die zweite Prozedur setzt den Thread wieder auf &quot;verfügbar&quot;... hmmm.<br />
Aber dann würde ich sicher Gefahr laufen, dass der Thread überschrieben wird, kurz bevor er beendet wurde, nämlich kurz nachdem der Thread als &quot;frei&quot; geflaggt wurde...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2196831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2196831</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Fri, 30 Mar 2012 00:32:32 GMT</pubDate></item><item><title><![CDATA[Reply to Thread Beendigung abhandeln on Fri, 30 Mar 2012 06:47:53 GMT]]></title><description><![CDATA[<p>du hast doch eine klassische Producer Consumer Situation vor dir, wenn ich das Recht sehe...<br />
Der Producer schiebt immer Arbeit in einen Buffer und die Threads warten darauf, dass neue Arbeit anliegt. Ein Thread holt sich diese aus dem Buffer und reiht sich danach wieder in die Warteschleife ein.</p>
<p>Edit: ich hab mal das Beispiel von hier benutzt in einer etwas veränderten Version. (C#) <a href="http://www.albahari.com/threading/part4.aspx" rel="nofollow">http://www.albahari.com/threading/part4.aspx</a> Abschnitt Producer/Consumer Queue</p>
<p>greetz KN4CK3R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2196847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2196847</guid><dc:creator><![CDATA[KN4CK3R]]></dc:creator><pubDate>Fri, 30 Mar 2012 06:47:53 GMT</pubDate></item></channel></rss>