<?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[atomic &amp;lt;T&amp;gt; , atomic&amp;lt;bool&amp;gt; und atomic_flag]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich würde gerne wissen was *genau* der Unterschied zwischen atomic&lt;bool&gt; und atomic_falg ist. Soweit ich das sehen kann nur dass keine load und store Operationen vorhanden sind.</p>
<p>Gibt es noch weitere Dinge hinsichtlich Portabilität? Wie sieht es hier für alle 3 oben genannten Dinge aus?</p>
<p>Ich kann mir z.B. schwer vorstellen dass atomic&lt;T&gt; für T = irgendeine selbstdefinierte Klasse atomar bleibt...</p>
<p>Danke euch</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/335863/atomic-lt-t-gt-atomic-lt-bool-gt-und-atomic_flag</link><generator>RSS for Node</generator><lastBuildDate>Mon, 20 Apr 2026 00:26:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/335863.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 16 Dec 2015 14:43:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to atomic &amp;lt;T&amp;gt; , atomic&amp;lt;bool&amp;gt; und atomic_flag on Wed, 16 Dec 2015 14:43:53 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich würde gerne wissen was *genau* der Unterschied zwischen atomic&lt;bool&gt; und atomic_falg ist. Soweit ich das sehen kann nur dass keine load und store Operationen vorhanden sind.</p>
<p>Gibt es noch weitere Dinge hinsichtlich Portabilität? Wie sieht es hier für alle 3 oben genannten Dinge aus?</p>
<p>Ich kann mir z.B. schwer vorstellen dass atomic&lt;T&gt; für T = irgendeine selbstdefinierte Klasse atomar bleibt...</p>
<p>Danke euch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2479752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2479752</guid><dc:creator><![CDATA[Ufuiko]]></dc:creator><pubDate>Wed, 16 Dec 2015 14:43:53 GMT</pubDate></item><item><title><![CDATA[Reply to atomic &amp;lt;T&amp;gt; , atomic&amp;lt;bool&amp;gt; und atomic_flag on Wed, 16 Dec 2015 16:30:53 GMT]]></title><description><![CDATA[<p>Nach der <a href="http://en.cppreference.com/w/cpp/atomic/atomic_flag" rel="nofollow">Referenz</a> hier würde ich sagen, dass <code>atomic_flag</code> garantiert Lock Free ist während die anderen <code>atomic&lt;T&gt;</code> Typen auch mit Locks realisiert werden können. Eine Möglichkeit alles atomar aussehen zu lassen ist ja den entsprechenden Bereich durch ein Lock zu schützen. Das wird auch wohl bei eigenen Klassen in <code>atomic&lt;T&gt;</code> passieren. Ob z.B. <code>atomic&lt;uint32_t&gt;</code> ohne Locks arbeitet wird nicht festgelegt, da es ja nach Architektur eventuell gar keine Instructions dafür gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2479763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2479763</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Wed, 16 Dec 2015 16:30:53 GMT</pubDate></item><item><title><![CDATA[Reply to atomic &amp;lt;T&amp;gt; , atomic&amp;lt;bool&amp;gt; und atomic_flag on Thu, 17 Dec 2015 08:15:41 GMT]]></title><description><![CDATA[<p>Danke. Heisst das das die Benutzung von atomic&lt;T&gt; nicht unbedingt atomar erfolgt wenn ich auf einer Architektur lande die keine locks unterstützt?</p>
<p>3 Folgefragen:<br />
1. Wo kann ich einsehen welche architekturen locks unterstützen bzw. ich mir sicher sein kann dass atomic mir atomare operationen liefern</p>
<p>2. Was passiert wenn ich atomic im code habe der auf einer architektur ohne lock support läuft? U.U. dann ein crash wegen data race?</p>
<p>3. Wie kann ich im Falle von Frage 2 sicheren code produzieren der portable bleibt wenn ich keine locks zur verfügung habe?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2479849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2479849</guid><dc:creator><![CDATA[Ufuiko]]></dc:creator><pubDate>Thu, 17 Dec 2015 08:15:41 GMT</pubDate></item><item><title><![CDATA[Reply to atomic &amp;lt;T&amp;gt; , atomic&amp;lt;bool&amp;gt; und atomic_flag on Thu, 17 Dec 2015 08:52:13 GMT]]></title><description><![CDATA[<p>Ufuiko schrieb:</p>
<blockquote>
<p>Danke. Heisst das das die Benutzung von atomic&lt;T&gt; nicht unbedingt atomar erfolgt wenn ich auf einer Architektur lande die keine locks unterstützt?</p>
</blockquote>
<p>Nein. Das heißt, dass ein Zugriff auf einen <code>atomic&lt;T&gt;</code> nicht unbedingt überall lock-free sein muss. atomar und lock-free sind zwei völlig verschiedene Eigenschaften. Ein Zugriff auf einen <code>atomic&lt;T&gt;</code> ist <em>immer</em> atomar, hence the name...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2479852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2479852</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Thu, 17 Dec 2015 08:52:13 GMT</pubDate></item><item><title><![CDATA[Reply to atomic &amp;lt;T&amp;gt; , atomic&amp;lt;bool&amp;gt; und atomic_flag on Thu, 17 Dec 2015 09:26:10 GMT]]></title><description><![CDATA[<p>Jede Multicore Architektur sollte sowas wie Locks bieten, sonst ist die Architektur einfach sinnlos weil man nichts zwischen den beiden Kernen syncronisieren kann. Viele Architekturen gehen auch noch weiter und bieten atomare Befehle für einige Operationen an. Zum Beispiel um ein int um Eins hochzuzählen. Diese Befehle sind oft schneller als das Sperren und Entsperren mit Locks. Um diese Befehle zu nutzen, ist die <code>atomic&lt;T&gt;</code> Klasse da. Wenn man allerdings Typen nutzt für die es auf der entsprechenden Architektur keine atomaren Befehle gibt, dann werden stattdessen Locks benutzt.</p>
<p>PS: Lock free programming (also mit atomics) ist übrigens äußerst kompliziert. Einfach mal ein paar <code>atomic&lt;&gt;</code> an einige wichtige (wie man meint) Variablen dranzuklatschen kann böse nach hinten losgehen. Hier eine recht informative zweiteilge Präsentation zu dem Thema von Herb Sutter:<br />
<a href="https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-1-of-2" rel="nofollow">https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-1-of-2</a><br />
<a href="https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-2-of-2" rel="nofollow">https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-2-of-2</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2479855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2479855</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Thu, 17 Dec 2015 09:26:10 GMT</pubDate></item></channel></rss>