<?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[Kurze Frage zu Threads]]></title><description><![CDATA[<p>Hi,</p>
<p>ich würde gerne Aufgaben effizient in Threads aufteilen.<br />
Vorrausgesetzt ich habe erkannt, dass ich 4 Threads<br />
parallel laufen lassen kann, dann würde ich<br />
ein Array mit 4 Threads erzeugen.</p>
<p>Kann ich die Abzuarbeitende Funktion eine Threadinstanz ändern, oder muss ich<br />
Jedes mal einen ganzen neune Thread erzeugen, wenn eine Funktion abgearbeitet worden ist.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/290704/kurze-frage-zu-threads</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 07:15:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/290704.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 01 Aug 2011 17:43:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kurze Frage zu Threads on Mon, 01 Aug 2011 17:43:35 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich würde gerne Aufgaben effizient in Threads aufteilen.<br />
Vorrausgesetzt ich habe erkannt, dass ich 4 Threads<br />
parallel laufen lassen kann, dann würde ich<br />
ein Array mit 4 Threads erzeugen.</p>
<p>Kann ich die Abzuarbeitende Funktion eine Threadinstanz ändern, oder muss ich<br />
Jedes mal einen ganzen neune Thread erzeugen, wenn eine Funktion abgearbeitet worden ist.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100527</guid><dc:creator><![CDATA[AlexanderKiebler]]></dc:creator><pubDate>Mon, 01 Aug 2011 17:43:35 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zu Threads on Mon, 01 Aug 2011 17:51:44 GMT]]></title><description><![CDATA[<p>Kannste die 4 Threads gerne durchlaufen lassen, die hiolen sich von einer gemeinsamen Queue oder Pipe ihre Aufträge.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100529</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 01 Aug 2011 17:51:44 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zu Threads on Mon, 01 Aug 2011 17:53:13 GMT]]></title><description><![CDATA[<p>Bevorzuge 1 Thread pro Core, nicht 1 Thread pro Arbeit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100530</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 01 Aug 2011 17:53:13 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zu Threads on Mon, 01 Aug 2011 19:26:13 GMT]]></title><description><![CDATA[<p>Okay,<br />
ich denke es läuft.<br />
Ich müßte jetzt 5 Threads haben, welche meine Pipe bearbeiten.</p>
<p>Kann ich in einer Threadfunktion herrausfinden, welche ID der Thread momentan hat ??</p>
<p>Einfach zum Prüfen, ob auf brav alle ihre Arbeit machen.</p>
<p>EDIt: Also ich arbeite mit boost::Tread</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100577</guid><dc:creator><![CDATA[AlexanderKiebler]]></dc:creator><pubDate>Mon, 01 Aug 2011 19:26:13 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zu Threads on Mon, 01 Aug 2011 19:29:42 GMT]]></title><description><![CDATA[<p><a href="http://lmgtfy.com/?q=boost+thread+id" rel="nofollow">http://lmgtfy.com/?q=boost+thread+id</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100580</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 01 Aug 2011 19:29:42 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zu Threads on Mon, 01 Aug 2011 19:44:35 GMT]]></title><description><![CDATA[<p>Hi PI,</p>
<p>also wenn cih auf den aktuellen Thread zugriff habe, dann ist es kein Problem.<br />
Aber ich suche nach etwas, wo ich innerhalb des Threads die eigene ID rausfindenkann...<br />
Ich hatte es davor schonmal mit<br />
boost::this_thread::id<br />
versucht..</p>
<p>EDIT: Trotzdem cooler link =).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100587</guid><dc:creator><![CDATA[AlexanderKiebler]]></dc:creator><pubDate>Mon, 01 Aug 2011 19:44:35 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zu Threads on Mon, 01 Aug 2011 20:09:43 GMT]]></title><description><![CDATA[<p>Läuft wie ne Eins =)...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100593</guid><dc:creator><![CDATA[AlexanderKiebler]]></dc:creator><pubDate>Mon, 01 Aug 2011 20:09:43 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zu Threads on Mon, 01 Aug 2011 22:24:36 GMT]]></title><description><![CDATA[<p>Wofür brauchst du eine Thread-ID?</p>
<p>Außerdem ging mir es eigentlich zu schnell wie du dann eine Lösung gefunden hast.</p>
<p>Kannst du mal deinen Code posten?</p>
<p>Ich glaube volkard meinte es etwa so:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;boost/thread.hpp&gt;
#include &lt;boost/interprocess/sync/scoped_lock.hpp&gt;

class Task;

class TaskQueue{
public:
	void add(Task* task){
		boost::mutex::scoped_lock l(mutex);
		queue.push_back(task);
		empty_condition.notify_one();
		std::cout &lt;&lt; &quot;adding task&quot; &lt;&lt; std::endl;
	}

	Task* task(){
		boost::mutex::scoped_lock lock(mutex);
		while(queue.empty())
			empty_condition.wait(lock);
		typename std::list&lt;Task*&gt;::iterator it = queue.begin();
		queue.erase(it);
		std::cout &lt;&lt; &quot;removing task&quot; &lt;&lt; std::endl;
		return *it;
	}

private:
	boost::mutex mutex;
	std::list&lt;Task*&gt; queue;
	boost::condition_variable empty_condition;
};

class Task{
public:
	virtual void execute() = 0;
};

class Thread{
public:
	Thread(TaskQueue&amp; task_source) : task_source(task_source){}

	void operator()(){
		while(true){
			Task* task = task_source.task();
			task-&gt;execute();
			delete task;
		}
	}

private:
	TaskQueue&amp; task_source;
};

class ThreadPool : public TaskQueue{
public:
	ThreadPool(unsigned int count){
		for(int i=0; i&lt;count; ++i){
			boost::thread(Thread(*this));
		}
	}

};

class CounterTask : public Task{
public:
	CounterTask(unsigned int i) : i(i){}

	virtual void execute(){
		for(int j=0; j&lt;i; ++j){
			std::cout &lt;&lt; j &lt;&lt; std::endl;
		}
	}

private:
	unsigned int i;
};

int main(){
	ThreadPool pool(5);
	for(int i=0; i&lt;11; ++i){
		pool.add(new CounterTask(i*1000));
	}
	while(true);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2100646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100646</guid><dc:creator><![CDATA[XSpille]]></dc:creator><pubDate>Mon, 01 Aug 2011 22:24:36 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zu Threads on Tue, 02 Aug 2011 00:32:04 GMT]]></title><description><![CDATA[<p>Hi XSpille,</p>
<p>ich habs mir aus dem alten zusammengebaut. Find deine Lösung aber schöner =).</p>
<p>Werd ich mir merken =).</p>
<p>Aber im Grunde machen wir beide das Selbe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100654</guid><dc:creator><![CDATA[AlexanderKiebler]]></dc:creator><pubDate>Tue, 02 Aug 2011 00:32:04 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zu Threads on Tue, 02 Aug 2011 00:43:33 GMT]]></title><description><![CDATA[<p>Weißt du eigentlich ob Boost was bietet für Dreiecksnetze ??<br />
Hab glaub mal was von einem Geometrie Teil gelesen....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100656</guid><dc:creator><![CDATA[AlexanderKiebler]]></dc:creator><pubDate>Tue, 02 Aug 2011 00:43:33 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zu Threads on Tue, 02 Aug 2011 00:56:36 GMT]]></title><description><![CDATA[<p>Meinst du Meshes? Was haben Meshes nu mit Threads zu tun? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100658</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 02 Aug 2011 00:56:36 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zu Threads on Tue, 02 Aug 2011 01:15:20 GMT]]></title><description><![CDATA[<p>Hi Hustebär <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title="=)"
      alt="🙂"
    /></p>
<p>nicht sonderlich viel. War eher als belanglose Frage zu später Stunde gedacht.<br />
Aber ja ich meine Meshes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100659</guid><dc:creator><![CDATA[AlexanderKiebler]]></dc:creator><pubDate>Tue, 02 Aug 2011 01:15:20 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zu Threads on Tue, 02 Aug 2011 01:54:53 GMT]]></title><description><![CDATA[<p>Also ich kenne da nix. Ist auch reichlich speziell finde ich.</p>
<p>Davor erwarte ich mir erstmal ne ordentliche Mathe-Library mit schönen fixed-size Vektor und Matrixklassen, hübsch optimiert mit SSE und allem. Das wäre IMO ausreichend allgemein um wirklich nützlich zu sein. Jede 2D/3D Engine implementiert sich das selbst, jedes GUI Toolkit etc. - das muss ja nicht sein.</p>
<p>Darauf könnte man dann evtl. was aufbauen was mit Meshes arbeitet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100665</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 02 Aug 2011 01:54:53 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zu Threads on Tue, 02 Aug 2011 10:19:27 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title="=)"
      alt="🙂"
    /> Andere Leute träumen von Eiss bei dem Wetter.<br />
Aber mir gehts ähnlich. Mir wären ein paar Software-Erweiterungen auch lieber.</p>
<p>Aber nochmal ein weiter Sprung. Kennst Du eine gute Beschreibung wo das Thema Dynamisch gelinkte Bibliotheken gut angeht.<br />
In erster Linie wie man die Schnittstelle ordentlich definiert. Also auch die Rückgabewerte. Ich brächt sogar ne Callback.... Kenne mich aber mit DLLs nicht aus. Plattform unabhängig sollte der Code auch noch sein. ...<br />
Dann sollte das ganze Ding auch noch Threadsafe sein.<br />
Ich frage, weil das Thema neu für mich ist, und der erste Eindruck eienr Sache<br />
meißt am besten hängen bleibt und ich möchte nicht mit einer schlechten Beschreibung beginnen...</p>
<p>Grüße</p>
<p>EDIT: Will damit sagen, ich kann mir selbst was raussuchen, aber ich kann nicht entscheiden ob das dann gut ist. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title="=)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100747</guid><dc:creator><![CDATA[AlexanderKiebler]]></dc:creator><pubDate>Tue, 02 Aug 2011 10:19:27 GMT</pubDate></item></channel></rss>