<?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[CPU-Auslastung bei ~50% durch einen Thread]]></title><description><![CDATA[<p>Servus,</p>
<p>ich habe innerhalb eines Threads, der nicht per Sleep aufgehalten wird eine Auslastung von rund 50% innerhalb meiner while Schleife - auch wenn ich jeglichen Inhalt entferne.<br />
Ist das normal? Kann ich dagegen etwas tun?</p>
<p>Adde ich selbst ein Sleep(1) liegt die CPU-Auslastung bei lässigen 5%...<br />
Brauch ich generell ein Sleep?</p>
<p>Grüße,<br />
Jöran</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/256021/cpu-auslastung-bei-50-durch-einen-thread</link><generator>RSS for Node</generator><lastBuildDate>Fri, 11 Sep 2026 19:02:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/256021.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 07 Dec 2009 10:44:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CPU-Auslastung bei ~50% durch einen Thread on Mon, 07 Dec 2009 10:44:56 GMT]]></title><description><![CDATA[<p>Servus,</p>
<p>ich habe innerhalb eines Threads, der nicht per Sleep aufgehalten wird eine Auslastung von rund 50% innerhalb meiner while Schleife - auch wenn ich jeglichen Inhalt entferne.<br />
Ist das normal? Kann ich dagegen etwas tun?</p>
<p>Adde ich selbst ein Sleep(1) liegt die CPU-Auslastung bei lässigen 5%...<br />
Brauch ich generell ein Sleep?</p>
<p>Grüße,<br />
Jöran</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818949</guid><dc:creator><![CDATA[Jöran]]></dc:creator><pubDate>Mon, 07 Dec 2009 10:44:56 GMT</pubDate></item><item><title><![CDATA[Reply to CPU-Auslastung bei ~50% durch einen Thread on Mon, 07 Dec 2009 10:54:04 GMT]]></title><description><![CDATA[<p>Was verstehst du unter Auslastung? Was ist es fuer eine CPU? Ist Hypertreading aktiviert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818955</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 07 Dec 2009 10:54:04 GMT</pubDate></item><item><title><![CDATA[Reply to CPU-Auslastung bei ~50% durch einen Thread on Mon, 07 Dec 2009 11:00:25 GMT]]></title><description><![CDATA[<p>Ich verstehe das Problem auch nicht.</p>
<p>Wenn Du in einem Thread eine leere while-Schleife laufen lässt, dann macht die zwar nichts, aber auch die Schleife sekbst verbraucht Rechenzeit. Ein Kern wird dabei zu 100 Prozent ausgelastet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818957</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 07 Dec 2009 11:00:25 GMT</pubDate></item><item><title><![CDATA[Reply to CPU-Auslastung bei ~50% durch einen Thread on Mon, 07 Dec 2009 11:33:46 GMT]]></title><description><![CDATA[<blockquote>
<p>Brauch ich generell ein Sleep?</p>
</blockquote>
<p>Nein. Du musst erstmal verstehen wie Computer funktionieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818971</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 07 Dec 2009 11:33:46 GMT</pubDate></item><item><title><![CDATA[Reply to CPU-Auslastung bei ~50% durch einen Thread on Mon, 07 Dec 2009 12:06:36 GMT]]></title><description><![CDATA[<p>Ist eine 2-Kern CPU.<br />
Wie finde ich das raus, ob Hyperthreading aktiviert ist?</p>
<p>Ich mein die zusammengefasste CPU-Auslastung im Task Manager. Hast schon recht. Eine CPU läuft auf 100%.</p>
<p>Hilf mir doch bitte dabei, zu verstehen wie das Ding funzt. Ich würde es nämlich gern optimieren.</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818981</guid><dc:creator><![CDATA[Jöran]]></dc:creator><pubDate>Mon, 07 Dec 2009 12:06:36 GMT</pubDate></item><item><title><![CDATA[Reply to CPU-Auslastung bei ~50% durch einen Thread on Mon, 07 Dec 2009 12:09:55 GMT]]></title><description><![CDATA[<p>Jöran schrieb:</p>
<blockquote>
<p>Servus,</p>
<p>ich habe innerhalb eines Threads, der nicht per Sleep aufgehalten wird eine Auslastung von rund 50% innerhalb meiner while Schleife - auch wenn ich jeglichen Inhalt entferne.<br />
Ist das normal?</p>
</blockquote>
<p>Vollkommen. Unter</p>
<pre><code class="language-cpp">while(isTrue())
 ;
</code></pre>
<p>Versteht die CPU:</p>
<pre><code class="language-cpp">LABEL: if (isTrue())
  goto LABEL;
</code></pre>
<p>Sprich: die testet andauernd isTrue(), springt, testet, springt, testet, springt, testet, spring, testet, springt..... <strong>ohne Unterbrechung</strong>, d.h. natuerlich sind das 100% Auslastung.</p>
<pre><code class="language-cpp">Kann ich dagegen etwas tun?
</code></pre>
<p>Den Thread &quot;schlafen legen&quot;:</p>
<ul>
<li>Sleep am Schleifenende</li>
<li>Mutex/Semaphore wenn der Thread nicht gebraucht wird</li>
</ul>
]]></description><link>https://www.c-plusplus.net/forum/post/1818982</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818982</guid><dc:creator><![CDATA[Blue-Tiger]]></dc:creator><pubDate>Mon, 07 Dec 2009 12:09:55 GMT</pubDate></item><item><title><![CDATA[Reply to CPU-Auslastung bei ~50% durch einen Thread on Mon, 07 Dec 2009 15:28:34 GMT]]></title><description><![CDATA[<p>Jöran schrieb:</p>
<blockquote>
<p>Ist eine 2-Kern CPU.<br />
Wie finde ich das raus, ob Hyperthreading aktiviert ist?</p>
<p>Ich mein die zusammengefasste CPU-Auslastung im Task Manager. Hast schon recht. Eine CPU läuft auf 100%.</p>
</blockquote>
<p>Also du hast 2 Arbeiter. Dem einen gibst du Arbeit und er ist zu 100% beschaeftigt. Der andere langweilt sich und ist zu 0% beschaeftigt. Das macht im Mittel ... tataa ... 50% Beschaeftigung. Die Frage lautet also: Wie kann ich den anderen Arbeiter auch zu 100% beschaeftigen? Aber vorher solltest du den Rat von hustbaer beherzigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1819087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1819087</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 07 Dec 2009 15:28:34 GMT</pubDate></item><item><title><![CDATA[Reply to CPU-Auslastung bei ~50% durch einen Thread on Mon, 07 Dec 2009 16:10:19 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Die Frage lautet also: Wie kann ich den anderen Arbeiter auch zu 100% beschaeftigen?</p>
</blockquote>
<p>Ich bin mir gar nicht sicher, ob das wirklich die Frage ist. Ich schätze Jöran will einfach nur die Auslastung reduzieren. Wahrscheinlich sollte er einfach <a href="http://de.wikipedia.org/wiki/Polling_(Informatik)" rel="nofollow">Polling</a> durch Mutex + Wait + Notify ersetzen.</p>
<p>Jöran: Wenn Du nichts zu tun hast, solltest Du dem Betriebssystem das auch signalisieren. Dann teilt das OS Deinem Thread keine CPU-Zeit mehr zu. Wenn Du auf eine bestimmte Bedingung wartest, solltest Du Thread A auf eine Art und Weise schlafen legen, so dass ein anderer Thread B den Thread A wieder aufwecken kann, wenn die Bedingung erfüllt ist. <code>sleep</code> benutzt man dafür aber selten. Threading-Bibliotheken bieten dafür Mutexes und Bedingungsvariablen an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1819108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1819108</guid><dc:creator><![CDATA[zu_faul_mich_einzuloggen]]></dc:creator><pubDate>Mon, 07 Dec 2009 16:10:19 GMT</pubDate></item></channel></rss>