<?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[std::mutex&#x2F;lock_guard universell verwendbar?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich frage mich schon seit längerem ob man z.B. den Mutex aus der std-library &quot;universell&quot; verwenden kann. Also für beliebige threads oder nur für <code>std::thread</code> threads?</p>
<p>Sprich, wenn ich etwas habe wie</p>
<pre><code>std::mutex some_mutex;
int global_int = 0;

void foo() 
{ 
    std::lock_guard&lt;std::mutex&gt; lock(some_mutex); // Sperren
    ++global_int; // Inkrementieren
}

// Starte foo mit verschiedenen threads
</code></pre>
<p>klappt das dann auch wenn ich <code>foo</code> über einen thread laufen lasse den ich z.B. mittels <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms682453%28v=vs.85%29.aspx" rel="nofollow">CreateThread</a> oder <a href="https://msdn.microsoft.com/de-de/library/kdzttdcb.aspx" rel="nofollow">_beginthreadex</a> angeworfen habe? Oder klappt das nur mit <code>std::thread</code> ? Und wie ist das wenn ich verschiedene Methoden mische?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/333077/std-mutex-lock_guard-universell-verwendbar</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 07:56:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/333077.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Jun 2015 12:42:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::mutex&#x2F;lock_guard universell verwendbar? on Wed, 10 Jun 2015 12:43:28 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich frage mich schon seit längerem ob man z.B. den Mutex aus der std-library &quot;universell&quot; verwenden kann. Also für beliebige threads oder nur für <code>std::thread</code> threads?</p>
<p>Sprich, wenn ich etwas habe wie</p>
<pre><code>std::mutex some_mutex;
int global_int = 0;

void foo() 
{ 
    std::lock_guard&lt;std::mutex&gt; lock(some_mutex); // Sperren
    ++global_int; // Inkrementieren
}

// Starte foo mit verschiedenen threads
</code></pre>
<p>klappt das dann auch wenn ich <code>foo</code> über einen thread laufen lasse den ich z.B. mittels <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms682453%28v=vs.85%29.aspx" rel="nofollow">CreateThread</a> oder <a href="https://msdn.microsoft.com/de-de/library/kdzttdcb.aspx" rel="nofollow">_beginthreadex</a> angeworfen habe? Oder klappt das nur mit <code>std::thread</code> ? Und wie ist das wenn ich verschiedene Methoden mische?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2456300</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2456300</guid><dc:creator><![CDATA[happystudent]]></dc:creator><pubDate>Wed, 10 Jun 2015 12:43:28 GMT</pubDate></item><item><title><![CDATA[Reply to std::mutex&#x2F;lock_guard universell verwendbar? on Wed, 10 Jun 2015 13:33:24 GMT]]></title><description><![CDATA[<p>Ich denke zwar nicht, dass der Standard diesbezüglich Garantien abgibt, aber de facto kannst du davon ausgehen, dass diese Synchronisationsmechanismen über die entsprechenden Funktionen des OS (CreateThread, CriticalSection, etc.) und der CPU (atomare Instruktionen) implementiert, und daher universell einsetzbar sind. Fals es da Ausnahmen gibt, würde ich das auch interessieren.</p>
<p>Finnegan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2456305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2456305</guid><dc:creator><![CDATA[Finnegan]]></dc:creator><pubDate>Wed, 10 Jun 2015 13:33:24 GMT</pubDate></item></channel></rss>