<?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[mutex ja oder nein]]></title><description><![CDATA[<p>hi, ich habe ein mehrdimensionales array und mehrere threads die in jeweils unterschiedlichen dimensionen reinschreiben wollen, nur 1 thread schreib in 1 dimension....brauche ich dazu auch einen mutex?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/159287/mutex-ja-oder-nein</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 22:03:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/159287.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 Sep 2006 15:11:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to mutex ja oder nein on Wed, 13 Sep 2006 15:11:15 GMT]]></title><description><![CDATA[<p>hi, ich habe ein mehrdimensionales array und mehrere threads die in jeweils unterschiedlichen dimensionen reinschreiben wollen, nur 1 thread schreib in 1 dimension....brauche ich dazu auch einen mutex?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1136746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1136746</guid><dc:creator><![CDATA[marko1]]></dc:creator><pubDate>Wed, 13 Sep 2006 15:11:15 GMT</pubDate></item><item><title><![CDATA[Reply to mutex ja oder nein on Wed, 13 Sep 2006 15:19:38 GMT]]></title><description><![CDATA[<p>marko1 schrieb:</p>
<blockquote>
<p>hi, ich habe ein mehrdimensionales array und mehrere threads die in jeweils unterschiedlichen dimensionen reinschreiben wollen, nur 1 thread schreib in 1 dimension....brauche ich dazu auch einen mutex?</p>
</blockquote>
<p>Hmm.... Ich koennt mir folgende Situation vorstellen:</p>
<p>auf einem Multiprozessor-PC laeuft Thread 1 auf CPU 1, Thread 2 auf CPU 2.</p>
<p>Thread 1 bearbeitet jetzt seine Zeile im Array, läd hierfür aber (kA. schlechte Compileroptimierung oder sonstwas) DAS GANZE Array in seinen L1-Chache. Thread 2 macht das selbe. Thread 1 schreibt dann die Daten aus dem L1-Chache zurück in den RAM, und dann kommt Thread 2, und ÜBERSCHREIBT jene Daten mit seinen Daten. Die Änderungen, die Thread 1 an seiner Zeile gemacht hat, gehen damit verloren.</p>
<p>DISCLAIMER: ich hab keine Ahnung ob sowas wirklich passieren kann oder nicht.</p>
<p>Wieso nicht gleich jeder Thread sein eigenes Array?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1136753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1136753</guid><dc:creator><![CDATA[Blue-Tiger]]></dc:creator><pubDate>Wed, 13 Sep 2006 15:19:38 GMT</pubDate></item><item><title><![CDATA[Reply to mutex ja oder nein on Wed, 13 Sep 2006 15:21:55 GMT]]></title><description><![CDATA[<p>grund: soll ich zb 2000 arrays per hand erstellen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1136756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1136756</guid><dc:creator><![CDATA[marko1]]></dc:creator><pubDate>Wed, 13 Sep 2006 15:21:55 GMT</pubDate></item><item><title><![CDATA[Reply to mutex ja oder nein on Wed, 13 Sep 2006 15:22:25 GMT]]></title><description><![CDATA[<p>Ne, sowas kann auf normalen Architekturen nicht passieren. Das Caching läuft schließlich transparent ab. Mit solchen Problem schlagen sich nur die Leute rum, die die CPUs bauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1136757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1136757</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Wed, 13 Sep 2006 15:22:25 GMT</pubDate></item><item><title><![CDATA[Reply to mutex ja oder nein on Wed, 13 Sep 2006 15:26:44 GMT]]></title><description><![CDATA[<p>Blue-Tiger schrieb:</p>
<blockquote>
<p>Thread 1 bearbeitet jetzt seine Zeile im Array, läd hierfür aber (kA. schlechte Compileroptimierung oder sonstwas) DAS GANZE Array in seinen L1-Chache. Thread 2 macht das selbe. Thread 1 schreibt dann die Daten aus dem L1-Chache zurück in den RAM, und dann kommt Thread 2, und ÜBERSCHREIBT jene Daten mit seinen Daten. Die Änderungen, die Thread 1 an seiner Zeile gemacht hat, gehen damit verloren.</p>
</blockquote>
<p>wenn sowas passiert (was ich nicht glauben kann), hilft auch kein mutex <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1136761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1136761</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Wed, 13 Sep 2006 15:26:44 GMT</pubDate></item><item><title><![CDATA[Reply to mutex ja oder nein on Wed, 13 Sep 2006 16:00:02 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>wenn sowas passiert (was ich nicht glauben kann), hilft auch kein mutex <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>
</blockquote>
<p>Doch. Wenn du sicherstellst, dass ein Thread, wenn er den Mutex belegt, den kompletten Zyklus (lesen, bearbeiten, zurückschreiben) durchführt, bevor er den Mutex wieder freigibt.</p>
<p>marko1 schrieb:</p>
<blockquote>
<p>grund: soll ich zb 2000 arrays per hand erstellen?</p>
</blockquote>
<p>Was meinst du damit?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1136787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1136787</guid><dc:creator><![CDATA[DarthZiu]]></dc:creator><pubDate>Wed, 13 Sep 2006 16:00:02 GMT</pubDate></item><item><title><![CDATA[Reply to mutex ja oder nein on Wed, 13 Sep 2006 16:07:52 GMT]]></title><description><![CDATA[<p>DarthZiu schrieb:</p>
<blockquote>
<p>net schrieb:</p>
<blockquote>
<p>wenn sowas passiert (was ich nicht glauben kann), hilft auch kein mutex <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>
</blockquote>
<p>Doch. Wenn du sicherstellst, dass ein Thread, wenn er den Mutex belegt, den kompletten Zyklus (lesen, bearbeiten, zurückschreiben) durchführt, bevor er den Mutex wieder freigibt.</p>
</blockquote>
<p>hilft trotzdem nix. in dem oben beschriebenen szenario überschreibt der zuletzt aktive thread die ergebnisse aller vorherigen threads. ein mutex o.ä. schützt hierbei nur vor datensalat. aber wie schon erwähnt: soooo schlechten code wird der mieseste compiler der welt nicht erzeugen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1136798</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1136798</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Wed, 13 Sep 2006 16:07:52 GMT</pubDate></item><item><title><![CDATA[Reply to mutex ja oder nein on Thu, 14 Sep 2006 10:55:12 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=403" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=8" rel="nofollow">Rund um die Programmierung</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137189</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Thu, 14 Sep 2006 10:55:12 GMT</pubDate></item><item><title><![CDATA[Reply to mutex ja oder nein on Thu, 14 Sep 2006 11:28:01 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>DarthZiu schrieb:</p>
<blockquote>
<p>net schrieb:</p>
<blockquote>
<p>wenn sowas passiert (was ich nicht glauben kann), hilft auch kein mutex <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>
</blockquote>
<p>Doch. Wenn du sicherstellst, dass ein Thread, wenn er den Mutex belegt, den kompletten Zyklus (lesen, bearbeiten, zurückschreiben) durchführt, bevor er den Mutex wieder freigibt.</p>
</blockquote>
<p>hilft trotzdem nix. in dem oben beschriebenen szenario überschreibt der zuletzt aktive thread die ergebnisse aller vorherigen threads. ein mutex o.ä. schützt hierbei nur vor datensalat. aber wie schon erwähnt: soooo schlechten code wird der mieseste compiler der welt nicht erzeugen <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>
</blockquote>
<p>Doch, der Mutex wuerde verhindern dass Thread2 ueberhaupt das Array einliest bevor Thread1 nicht damit fertig ist.</p>
<p>Aber wenn der Fall eh nicht eintreten kann, faellt mir kein Grund fuer ein Mutex ein, aber irgendwie find ich's auch nicht ganz &quot;sauber&quot;.</p>
<p>marko1 schrieb:</p>
<blockquote>
<p>grund: soll ich zb 2000 arrays per hand erstellen?</p>
</blockquote>
<p>Erstellst du denn die 2000 Threads von Hand? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137204</guid><dc:creator><![CDATA[Blue-Tiger]]></dc:creator><pubDate>Thu, 14 Sep 2006 11:28:01 GMT</pubDate></item></channel></rss>