<?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[Threads automatisch erzeugen]]></title><description><![CDATA[<p>Hallo,</p>
<p>gibt es die Möglichkeit Threads automatisch zu erzeugen? Es geht darum einen Schwarm zu simulieren. Dabei wird jeder einzelne Partikel durch einen eigenen Thread erzeugt und gesteuert. Nun möchte ich aber &gt;100 Partikel haben. Da wirds langsam aufwendiger.</p>
<p>Also ist meine Frage, ob es möglich ist Threads mit einem fast identischen Quelltext (Außer bespielsweise einer Laufvariable) automatisch zu erzeugen?</p>
<p>Verwende Microsoft Visual Studio 2003 unter Windows XP.</p>
<p>Oder habt ihr einen ganz anderen Vorschlag, wie man das realisieren kann.</p>
<p>LG Theo112</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194656/threads-automatisch-erzeugen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 21:55:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194656.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 Oct 2007 14:17:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Threads automatisch erzeugen on Tue, 09 Oct 2007 14:17:46 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>gibt es die Möglichkeit Threads automatisch zu erzeugen? Es geht darum einen Schwarm zu simulieren. Dabei wird jeder einzelne Partikel durch einen eigenen Thread erzeugt und gesteuert. Nun möchte ich aber &gt;100 Partikel haben. Da wirds langsam aufwendiger.</p>
<p>Also ist meine Frage, ob es möglich ist Threads mit einem fast identischen Quelltext (Außer bespielsweise einer Laufvariable) automatisch zu erzeugen?</p>
<p>Verwende Microsoft Visual Studio 2003 unter Windows XP.</p>
<p>Oder habt ihr einen ganz anderen Vorschlag, wie man das realisieren kann.</p>
<p>LG Theo112</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381349</guid><dc:creator><![CDATA[Theo112]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:17:46 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Tue, 09 Oct 2007 14:19:25 GMT]]></title><description><![CDATA[<blockquote>
<p>Dabei wird jeder einzelne Partikel durch einen eigenen Thread erzeugt und gesteuert. Nun möchte ich aber &gt;100 Partikel haben.</p>
</blockquote>
<p>machs anders.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381353</guid><dc:creator><![CDATA[..........]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:19:25 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Tue, 09 Oct 2007 14:21:27 GMT]]></title><description><![CDATA[<p>Warum? Mit wenigen Partikel geht es so wunderbar. Wäre schade, wenn ich das anders machen muss!</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381356</guid><dc:creator><![CDATA[Theo112]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:21:27 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Tue, 09 Oct 2007 14:26:13 GMT]]></title><description><![CDATA[<p>Ich glaube es wär schlauer, einen einzelnen Thread für die Berechnung der Partikel zu nehmen, und einen für das Hauptprogramm.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381358</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:26:13 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Tue, 09 Oct 2007 14:24:18 GMT]]></title><description><![CDATA[<p>Worin unterscheiden sich denn die einzelnen Threads/Partikel tatsächlich voneinander? Wenn sich nur einige Startbedingungen ändern, kannst du eine einzelne Thread-Funktion verwenden und dieser die Randbedingungen per Parameter übergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381364</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:24:18 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Tue, 09 Oct 2007 14:28:13 GMT]]></title><description><![CDATA[<p>Bisher unterscheiden sie sich nur in ihren momentanen Geschwindigkeiten in X und Y Richtung. Das heißt in 2 doubles. Später sollen noch weitere Werte wie Dichte etc hinzukommen.</p>
<p>Der Grund, warum ich Threads gewählt habe ist, dass so jeder Partikel unabhängig von allen anderen berechnet wird. Brauchen später mal einzelne PArtikel längere Rechenzeiten, werden die anderen in der Zwischenzeit weiter simuliert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381368</guid><dc:creator><![CDATA[Theo112]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:28:13 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Tue, 09 Oct 2007 14:29:35 GMT]]></title><description><![CDATA[<p>natürlich kannst du mehrere Thread automatisch starten und jeweils andere parameter übergeben, z.B. in ner schleife, aber machen würde ich es nicht. wenn die steuerung eines partikels nicht sehr sehr sher aufwendig ist, dann braucht das umschalten zwischen den Threads viel länge als die eigentliche berechung. mach einfach ein array von Partikeln und arbeite das ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381369</guid><dc:creator><![CDATA[mit löchern in der hose]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:29:35 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Tue, 09 Oct 2007 14:35:00 GMT]]></title><description><![CDATA[<p>Wie würde das denn gehen? Wie sieht die Routine dafür aus?</p>
<p>Würde es gerne mal ausprobieren und schauen wie es dann läuft.</p>
<p>Vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381378</guid><dc:creator><![CDATA[Theo112]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:35:00 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Tue, 09 Oct 2007 14:36:34 GMT]]></title><description><![CDATA[<p>Theo112 schrieb:</p>
<blockquote>
<p>Bisher unterscheiden sie sich nur in ihren momentanen Geschwindigkeiten in X und Y Richtung. Das heißt in 2 doubles. Später sollen noch weitere Werte wie Dichte etc hinzukommen.</p>
</blockquote>
<p>Das ist doch die ideale anwendung eines Konzepts, das sich &quot;Parameter&quot; nennt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<pre><code class="language-cpp">//die meisten MT-Bibliotheken übergeben der Threadfunktion einen void*, den sie selber interpretieren darf
//wir packen alle nötigen Daten in einen struct, den wir dafür anlegen:
struct th_data
{
  double vx,vy;
};

int thread_fkt(void* param)
{
  th_data* data = (th_data*)param;
  ...
}

...
th_data data[100];//wir brauchen für jeden Thread einen eigenen Struct
for(int i=0;i&lt;100;++i)
{
  data[i].vx=random();data[i].vy=random();//Thread-Parameter zusammenstellen
  begintread(thread_fkt,data+i);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1381382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381382</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:36:34 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Tue, 09 Oct 2007 14:38:12 GMT]]></title><description><![CDATA[<p>Theo112 schrieb:</p>
<blockquote>
<p>Wie würde das denn gehen? Wie sieht die Routine dafür aus?</p>
</blockquote>
<p>kommt drauf an. zeig code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381384</guid><dc:creator><![CDATA[more!]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:38:12 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Tue, 09 Oct 2007 14:41:09 GMT]]></title><description><![CDATA[<p>vlt. wäre es noch sinnvoll das ein thread z.B. 50 oder 100 Partikel berechnet und es davon 10 threads gibt. aber wieso meist du eigentlich, dass eine berechnung so aufwendig werden könnte?<br />
welche api verwendest du für die threads?<br />
vom prinzip her könnte es so ähnlich aussehen</p>
<pre><code>for(int i = 0;i&lt;100;i++) {
    Parameter* param = createParams(i);
    CreateThread(ThreadFunc, param);
}
</code></pre>
<p>Die Parameter kannst du auch in der Thread Funktion erzeugen lassen. Du darfst in der Threadfunktion nur keine globalen/statischen variablen verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381388</guid><dc:creator><![CDATA[mit löchern in der hose]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:41:09 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Tue, 09 Oct 2007 14:42:15 GMT]]></title><description><![CDATA[<p>Vielen Dank an CStoll!</p>
<p>Werde es so probieren!</p>
<p>Danke an alle!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381392</guid><dc:creator><![CDATA[Theo112]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:42:15 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Tue, 09 Oct 2007 14:45:04 GMT]]></title><description><![CDATA[<p>Ich glaube es wäre besser, wenn du dir sowas wie einen „Partikelmanager“ baust, der Partikel erzeugt und verwaltet. Für den kannst du dann verschiedene Arten der Berechnung implementieren. Mit dem „Jeder-Partikel-ein-Thread-Ansatz“ wirst du IMHO nicht viel Freude haben, da Betriebsystemthreads ganz schön fett sind. Sinnvoller wäre es, immer einen Haufen Partikel (1/4 z.B.) zusammenzufassen und in einem Thread zu berechnen. Damit ersparst du dem Betriebsystem viel unnötigen und langsamen Verwaltungsaufwand. Du könntest sogar das ganze noch mit SIMD-Instruktionen (MMX, SSE, was auch immer) beschleunigen, du musst es halt nur erstmal abstrahieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381395</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:45:04 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Tue, 09 Oct 2007 14:47:10 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<pre><code class="language-cpp">//die meisten MT-Bibliotheken übergeben der Threadfunktion einen void*, den sie selber interpretieren darf
//wir packen alle nötigen Daten in einen struct, den wir dafür anlegen:
struct th_data
{
  double vx,vy;
};

int thread_fkt(void* param)
{
  th_data* data = (th_data*)param;
  ...
}

...
th_data data[100];//wir brauchen für jeden Thread einen eigenen Struct
for(int i=0;i&lt;100;++i)
{
  data[i].vx=random();data[i].vy=random();//Thread-Parameter zusammenstellen
  begintread(thread_fkt,data+i);
}
</code></pre>
</blockquote>
<p>vorsicht!<br />
th_data data[100];//wir brauchen für jeden Thread einen eigenen Struct<br />
dieses array darf nicht in einer funktion erzeugt werden, sonst zeigt der zeiger im thread auf müll, wenn die funktion beendet wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381398</guid><dc:creator><![CDATA[mit löchern in der hose]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:47:10 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Wed, 10 Oct 2007 04:42:05 GMT]]></title><description><![CDATA[<p>ich habe da einen Ähnlichen ansatz, und kann &quot;Theo112&quot; schon verstehen! Ich Simuliere eine Maschine, welche aus einem Hauptthread, und Modulthreadsbesteht!</p>
<p>Der Hautpthread vergibt afugaben an die Module der Anlage, so wird für jedes Modul (bisher max. 32) ein thread verwendet!<br />
Oder findet ihr den Ansatz nicht gut?</p>
<p>Allerdings erzeuge ich diese Threads am anfang, und lege sie solange schlafen bis sie vom Hautpthread ne Aufgabe zugewiesen bekommen!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381667</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Wed, 10 Oct 2007 04:42:05 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Wed, 10 Oct 2007 04:57:41 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>ich habe da einen Ähnlichen ansatz, und kann &quot;Theo112&quot; schon verstehen! Ich Simuliere eine Maschine, welche aus einem Hauptthread, und Modulthreadsbesteht!</p>
<p>Der Hautpthread vergibt afugaben an die Module der Anlage, so wird für jedes Modul (bisher max. 32) ein thread verwendet!<br />
Oder findet ihr den Ansatz nicht gut?</p>
</blockquote>
<p>zu wenig info um sowas zu sagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381668</guid><dc:creator><![CDATA[die nachbaren]]></dc:creator><pubDate>Wed, 10 Oct 2007 04:57:41 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Wed, 10 Oct 2007 05:15:35 GMT]]></title><description><![CDATA[<p>naja stellt dir die Maschine als Fertigungsstrasse vor.Die Module sind Stationen oder Roboter... welche aufgaben bekommen (bewegungabläufe etc.)</p>
<p>Der hautpthread verwaltet den ablauf in der fertigungsstrasse, und die modulthread steuern/simulieren stationen bzw. Roboter...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381669</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Wed, 10 Oct 2007 05:15:35 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Wed, 10 Oct 2007 06:32:34 GMT]]></title><description><![CDATA[<p>mehr als könnte ok sein kann man nicht sagen, weil es die details und anforderungen immer noch vollkommen unklar sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381711</guid><dc:creator><![CDATA[die nachbaren]]></dc:creator><pubDate>Wed, 10 Oct 2007 06:32:34 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Tue, 16 Oct 2007 23:41:06 GMT]]></title><description><![CDATA[<p>1000 Threads erzeugen zu wollen ist aber überhaupt nicht sinnvoll, die legen sich gegenseitig lahm (scheduling!).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1386777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386777</guid><dc:creator><![CDATA[unregistrierter]]></dc:creator><pubDate>Tue, 16 Oct 2007 23:41:06 GMT</pubDate></item><item><title><![CDATA[Reply to Threads automatisch erzeugen on Wed, 17 Oct 2007 06:02:00 GMT]]></title><description><![CDATA[<p>für simulation threading zu verwenden ist gefährlich, da threading keine definierte abarbeitungsfolge garantiert. für simulation ist aber genau das wichtig. es kommt nicht darauf an, dass alles möglichst schnell durch die gegend fliegt, es kommt darauf an, dass die simulation innerhalb definierter parameter bleibt. selbst wenn man &quot;unabhängige&quot; system simulieren möchte, ist es wichtig, genau diese unabhängigkeit (verzögerungen, ausfall, etc.) wohl definiert simulieren zu können.</p>
<p>wenn die partikel miteinander interagieren sollen, scheiden threads also sofort aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1386822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386822</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Wed, 17 Oct 2007 06:02:00 GMT</pubDate></item></channel></rss>