<?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 ohne &amp;quot;busy waiting&amp;quot; anhalten ?]]></title><description><![CDATA[<p>moinmoin,<br />
ich hoffe, dass ich mit der thread-frage hier richtig bin...<br />
gibt es eine Möglichkeit einen Thread kurzzeitig anzuhalten? ICh bin gerade bei dem Problem geimeinsam genutzte Daten zwischen den Threads zu haben und will einen &quot;kritischen Abschnitt&quot; einfügen, was auch nicht das Problem darstellt. Wenn ein Thread auf Daten in einem kritischen Abschnitt zugreift, müssen die anderen Threads warten. Aber das verballert doch unmengen an rechenzeit! (&quot;busy waiting&quot; halt). In vielen Erklärungen über Threads wird das Problem angesprochen, aber nie <strong>ohne</strong> busy waiting gelöst.<br />
Auf der Suche in der MSDN bin ich nur auf Einträge gestoßen die beschreiben, wie man Threads ohne busy waiting anhalten kann(genau das was ich suche). Diese Beiträge beziehen sich aber leider nur auf C# und .NET<br />
Wie realisiere ich das unter C++? am besten wäre natürlich eine fertige WinAPI <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="😉"
    /><br />
heimschmiede</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/153164/threads-ohne-quot-busy-waiting-quot-anhalten</link><generator>RSS for Node</generator><lastBuildDate>Thu, 23 Jul 2026 09:35:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/153164.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Jul 2006 14:00:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Threads ohne &amp;quot;busy waiting&amp;quot; anhalten ? on Thu, 13 Jul 2006 14:00:23 GMT]]></title><description><![CDATA[<p>moinmoin,<br />
ich hoffe, dass ich mit der thread-frage hier richtig bin...<br />
gibt es eine Möglichkeit einen Thread kurzzeitig anzuhalten? ICh bin gerade bei dem Problem geimeinsam genutzte Daten zwischen den Threads zu haben und will einen &quot;kritischen Abschnitt&quot; einfügen, was auch nicht das Problem darstellt. Wenn ein Thread auf Daten in einem kritischen Abschnitt zugreift, müssen die anderen Threads warten. Aber das verballert doch unmengen an rechenzeit! (&quot;busy waiting&quot; halt). In vielen Erklärungen über Threads wird das Problem angesprochen, aber nie <strong>ohne</strong> busy waiting gelöst.<br />
Auf der Suche in der MSDN bin ich nur auf Einträge gestoßen die beschreiben, wie man Threads ohne busy waiting anhalten kann(genau das was ich suche). Diese Beiträge beziehen sich aber leider nur auf C# und .NET<br />
Wie realisiere ich das unter C++? am besten wäre natürlich eine fertige WinAPI <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="😉"
    /><br />
heimschmiede</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1097155</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1097155</guid><dc:creator><![CDATA[Heimschmiede]]></dc:creator><pubDate>Thu, 13 Jul 2006 14:00:23 GMT</pubDate></item><item><title><![CDATA[Reply to Threads ohne &amp;quot;busy waiting&amp;quot; anhalten ? on Thu, 13 Jul 2006 14:15:06 GMT]]></title><description><![CDATA[<p>Normal nimmt man dafür eine CriticalSection! Und das hat im normalfall nix mit Busy-Waiting zu tun... ausser Du aktivierst den SpinCount...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1097166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1097166</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Thu, 13 Jul 2006 14:15:06 GMT</pubDate></item><item><title><![CDATA[Reply to Threads ohne &amp;quot;busy waiting&amp;quot; anhalten ? on Thu, 13 Jul 2006 14:35:19 GMT]]></title><description><![CDATA[<p>Jochen Kalmbach schrieb:</p>
<blockquote>
<p>Normal nimmt man dafür eine CriticalSection! Und das hat im normalfall nix mit Busy-Waiting zu tun... ausser Du aktivierst den SpinCount...</p>
</blockquote>
<p>Ist das für dich eine Klasse? oder baust du dir die selber?<br />
denn, wenn ein ELement gelockt ist, weil ein anderer Thread gerade damit arbeitet, schreibt man eine leere while und wartet, bis das element wieder frei ist. aber windows gibt doch jedem thread seine rechenzeit und mein thread verballert die rechenzeit damit in einer while zu warten, während der andere thread die rechenzeit gut gebrauchen könnte um schneller arbeiten zu können.<br />
wenn ich den thread anhalten könnte, wäre die rechenzeit für einen zeitraum anderwertig zu vergeben, oder sehe ich das falsch?<br />
heimschmiede</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1097182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1097182</guid><dc:creator><![CDATA[Heimschmiede]]></dc:creator><pubDate>Thu, 13 Jul 2006 14:35:19 GMT</pubDate></item><item><title><![CDATA[Reply to Threads ohne &amp;quot;busy waiting&amp;quot; anhalten ? on Thu, 13 Jul 2006 14:39:00 GMT]]></title><description><![CDATA[<p>Heimschmiede schrieb:</p>
<blockquote>
<p>Jochen Kalmbach schrieb:</p>
<blockquote>
<p>Normal nimmt man dafür eine CriticalSection! Und das hat im normalfall nix mit Busy-Waiting zu tun... ausser Du aktivierst den SpinCount...</p>
</blockquote>
<p>Ist das für dich eine Klasse? oder baust du dir die selber?<br />
denn, wenn ein ELement gelockt ist, weil ein anderer Thread gerade damit arbeitet, schreibt man eine leere while und wartet, bis das element wieder frei ist. aber windows gibt doch jedem thread seine rechenzeit und mein thread verballert die rechenzeit damit in einer while zu warten, während der andere thread die rechenzeit gut gebrauchen könnte um schneller arbeiten zu können.<br />
wenn ich den thread anhalten könnte, wäre die rechenzeit für einen zeitraum anderwertig zu vergeben, oder sehe ich das falsch?<br />
heimschmiede</p>
</blockquote>
<p>In einer while() schleife wartet man nicht. Nimm lieber, wie Jochen es gesagt hat eine CRITICAL_SECTION</p>
<p>Siehe: <a href="http://www.codeproject.com/threads/Synchronization.asp" rel="nofollow">http://www.codeproject.com/threads/Synchronization.asp</a></p>
<p>BR</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1097189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1097189</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Thu, 13 Jul 2006 14:39:00 GMT</pubDate></item><item><title><![CDATA[Reply to Threads ohne &amp;quot;busy waiting&amp;quot; anhalten ? on Thu, 13 Jul 2006 15:56:33 GMT]]></title><description><![CDATA[<p>[quote=&quot;Heimschmiede&quot;]</p>
<p>Jochen Kalmbach schrieb:</p>
<blockquote>
<p>Normal nimmt man dafür eine CriticalSection! Und das hat im normalfall nix mit Busy-Waiting zu tun... ausser Du aktivierst den SpinCount...</p>
</blockquote>
<p>Ist das für dich eine Klasse? oder baust du dir die selber?</p>
<p>Sowas kann nur durch das OS zur Verfügung gestellt werden! Sonst musst Du wirklich Busy-Waiting machen...<br />
Siehe: InitializeCriticalSection<br />
<a href="http://msdn.microsoft.com/library/en-us/dllproc/base/initializecriticalsection.asp" rel="nofollow">http://msdn.microsoft.com/library/en-us/dllproc/base/initializecriticalsection.asp</a><br />
(und noch Enter..., Leave..., Delete... )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1097246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1097246</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Thu, 13 Jul 2006 15:56:33 GMT</pubDate></item></channel></rss>