<?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[pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;?]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>nehmen wir an ich habe 11 Threads und eine Variable a. 10 der 11 Threads beschäftigen sich mit Rechenarbeit, wobei auch die Variable a benutzt wird. 1 Thread ändert alle 10 Sekunden den Wert der Variable a.<br />
Nun sollte es ja auch nicht sein dass a von dem Thread verändert wird während ein anderer Thread gerade mit der Variable rechnet.<br />
Das Problem könnte man ja mit einem Mutex lösen, aber da die Variable nur alle 10 Sekunden geupdatet wird wäre es doch sinnlos in jedem Thread ein Mutex zu verwenden wo die Variable a benutzt wird, da sich zwischen diesen 10 Sekunden die Threads untereinander blockieren würden, oder?<br />
Gibt es eine Möglichkeit dass die Threads sozusagen nur dann warten wenn die Variable gerade geupdatet wird und sich dann nicht untereinander blockieren?</p>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/328935/pthread_mutex_t-ein-quot-master-lock-quot</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 07:39:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/328935.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 01 Nov 2014 08:34:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sat, 01 Nov 2014 08:34:28 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>nehmen wir an ich habe 11 Threads und eine Variable a. 10 der 11 Threads beschäftigen sich mit Rechenarbeit, wobei auch die Variable a benutzt wird. 1 Thread ändert alle 10 Sekunden den Wert der Variable a.<br />
Nun sollte es ja auch nicht sein dass a von dem Thread verändert wird während ein anderer Thread gerade mit der Variable rechnet.<br />
Das Problem könnte man ja mit einem Mutex lösen, aber da die Variable nur alle 10 Sekunden geupdatet wird wäre es doch sinnlos in jedem Thread ein Mutex zu verwenden wo die Variable a benutzt wird, da sich zwischen diesen 10 Sekunden die Threads untereinander blockieren würden, oder?<br />
Gibt es eine Möglichkeit dass die Threads sozusagen nur dann warten wenn die Variable gerade geupdatet wird und sich dann nicht untereinander blockieren?</p>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425225</guid><dc:creator><![CDATA[Bobface]]></dc:creator><pubDate>Sat, 01 Nov 2014 08:34:28 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sat, 01 Nov 2014 08:43:12 GMT]]></title><description><![CDATA[<p>Der Sinn eines Mutex ist aber gerade das man andere Threads blockiert während das Update von Daten stattfindet.<br />
Man verwendet einen Mutex für die Daten der dann von allen Threads verwendet wird.</p>
<p>Oder soll etwa der eine thread die anderen 10 Starten nachdem er das update gemacht hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425227</guid><dc:creator><![CDATA[simbad]]></dc:creator><pubDate>Sat, 01 Nov 2014 08:43:12 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sat, 01 Nov 2014 09:07:45 GMT]]></title><description><![CDATA[<p>Die 10 &quot;Rechen-Threads&quot; können doch auch gleichzeitig die Variable lesen ohne dass Probleme entstehen, oder? Mir geht es darum, dass die Rechenthreads die Variable gleichzeitig lesen können, nur wenn sie von Thread 11 geupdatet wird, sollen sie warten. Wenn ich in jedem einzelnen Thread ein Mutex nutzen würde, dann könnten die Threads die Variable nicht gleichzeitig lesen, was ich vermeiden will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425228</guid><dc:creator><![CDATA[Bobface]]></dc:creator><pubDate>Sat, 01 Nov 2014 09:07:45 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sat, 01 Nov 2014 09:16:32 GMT]]></title><description><![CDATA[<p>Dein Problem ist nur sehr vage beschrieben. Wenn sich die Rechenthreads am Anfang eine Kopie der Variablen machen können, wäre std::atomic oder boost::atomic vielleicht eine Lösung.</p>
<p>Ich würde dir auf jeden Fall raten, C++11 oder boost Threads zu verwenden, wenn das möglich ist. Pthreads sind ein Systemspezifisches C-API.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425229</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 01 Nov 2014 09:16:32 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sat, 01 Nov 2014 09:19:59 GMT]]></title><description><![CDATA[<p>Nochmal: Man gibt nicht jedem thread einen Mutex. Sondern &quot;alle&quot; threads teilen sich einen Mutex.</p>
<p>Wenn der Zeitpunkt der Veränderung für die Rechenthreads egal ist, dann kannst du das mit spinlocks machen.</p>
<p>Immer wenn geschrieben wird wird ein lock gemacht und danach ein unlock.</p>
<p>Und wenn dann die Worker-Threads die Variable nur zu wenigen Zeitpunkten kopieren, dann machen die das genause.</p>
<p>Aber nur ein Mutex/spinlock für alle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425230</guid><dc:creator><![CDATA[simbad]]></dc:creator><pubDate>Sat, 01 Nov 2014 09:19:59 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sat, 01 Nov 2014 09:24:58 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Dein Problem ist nur sehr vage beschrieben. Wenn sich die Rechenthreads am Anfang eine Kopie der Variablen machen können, wäre std::atomic oder boost::atomic vielleicht eine Lösung.</p>
<p>Ich würde dir auf jeden Fall raten, C++11 oder boost Threads zu verwenden, wenn das möglich ist. Pthreads sind ein Systemspezifisches C-API.</p>
</blockquote>
<p>pthreads, POSIX Threads, Portable Operating System Interface: Wo ist das systemspezifisch?<br />
Es ist wohl davon abhängig ob ein Betriebssystem das unterstützt. Das ist aber bei C++11 nicht anders. Da isses davon abhängig ob der Compiler das unterstützt. Und boost ist eine eigene Library Collection. Mindestens genauso systemspezifisch wie pthreads oder C++ threads.</p>
<p>Es gibt viele Lösungen für das Problem. Wichtig ist das während des schreibenden Updates der Variable keiner von dort liest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425231</guid><dc:creator><![CDATA[simbad]]></dc:creator><pubDate>Sat, 01 Nov 2014 09:24:58 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sat, 01 Nov 2014 10:40:55 GMT]]></title><description><![CDATA[<p>simbad schrieb:</p>
<blockquote>
<p>pthreads, POSIX Threads, Portable Operating System Interface: Wo ist das systemspezifisch?<br />
Es ist wohl davon abhängig ob ein Betriebssystem das unterstützt.</p>
</blockquote>
<p>Das ist die Definition von systemspezifisch.</p>
<blockquote>
<p>Das ist aber bei C++11 nicht anders. Da isses davon abhängig ob der Compiler das unterstützt.</p>
</blockquote>
<p>Jein. Es ist zwar davon abhängig ob es ein Compiler unterstützt. Im Gegensatz zu POSIX wird das jedoch in der Zukunft jeder C++ Compiler unterstützen.</p>
<blockquote>
<p>Und boost ist eine eigene Library Collection. Mindestens genauso systemspezifisch wie pthreads oder C++ threads.</p>
</blockquote>
<p>Nein, boost hält sich an den C++ Standard und bietet Support für viele verschiedene Betriebssysteme, indem sie immer die entsprechende native API des OS verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425243</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sat, 01 Nov 2014 10:40:55 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sat, 01 Nov 2014 11:24:53 GMT]]></title><description><![CDATA[<p>Verwende boost::shared_mutex<br />
Dann blockieren sich die Leser nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425251</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sat, 01 Nov 2014 11:24:53 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sat, 01 Nov 2014 12:33:46 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>simbad schrieb:</p>
<blockquote>
<p>pthreads, POSIX Threads, Portable Operating System Interface: Wo ist das systemspezifisch?<br />
Es ist wohl davon abhängig ob ein Betriebssystem das unterstützt.</p>
</blockquote>
<p>Das ist die Definition von systemspezifisch.</p>
</blockquote>
<p>Nö. POSIX beschreibt einmal das Interface und natürlich das zu erwartende Verhalten. Das ist bei strlen() oder strcpy() auch nicht anders. Die Verwendung von pthreads bedeutet lediglich das man die durch POSIX definierten interfaces bedient. Sie sind somit vom Betriebssystem unabhängig, da es grundsätzlich egal ist wie die API eines beliebigen OS die entsprechenden Funktionen benennt.<br />
Mutex/Thread/Event und vieles mehr sind Bestandteil eines jeden modernen OS. Nur die API ist jedesmal anders. Da setzt POSIX mit der Standardisierung des Interface an.</p>
<blockquote>
<blockquote>
<p>Das ist aber bei C++11 nicht anders. Da isses davon abhängig ob der Compiler das unterstützt.</p>
</blockquote>
<p>Jein. Es ist zwar davon abhängig ob es ein Compiler unterstützt. Im Gegensatz zu POSIX wird das jedoch in der Zukunft jeder C++ Compiler unterstützen.</p>
</blockquote>
<p>In Zukunft sicher. Nur ist es ein Frage wie weit in die Zukunft es noch gehen muss bis es soweit ist.<br />
Ich entwickel viel im embedded Bereich. Da fängt man langsam mit dem Sprung von C-&gt;C++ an. Und die Compilerbauer sind noch weit C++11 entfernt.</p>
<blockquote>
<blockquote>
<p>Und boost ist eine eigene Library Collection. Mindestens genauso systemspezifisch wie pthreads oder C++ threads.</p>
</blockquote>
<p>Nein, boost hält sich an den C++ Standard und bietet Support für viele verschiedene Betriebssysteme, indem sie immer die entsprechende native API des OS verwenden.</p>
</blockquote>
<p>Damit ist boost auch nur ein Wrapper. Denn boost ändert nicht das verhalten des Compilers. Es ist auch nicht möglich einen Compiler der nicht C++11 konform ist durch Verwendung von boost libraries in einen Compiler zu verwandeln der sich plötzlich C++11 konform ist, das nur zu deiner Argumentation bezüglich &quot;hält sich an den C++ standard&quot;.<br />
Ich habe schon Thread und Mutex und Event Klassen gebaut die auf die native API aufsetzen und das sich unter Linux und Windows gleich verhält. Damit habe ich mir aber lediglich ein einheitliches Interface für meine Anwendungen geschaffen. Das macht es aber alles nicht besser oder C++ Standard konformer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425256</guid><dc:creator><![CDATA[simbad]]></dc:creator><pubDate>Sat, 01 Nov 2014 12:33:46 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sat, 01 Nov 2014 13:22:54 GMT]]></title><description><![CDATA[<p>Für Windows gibts hier eine Lösung für das Problem:<br />
<a href="http://www.codeproject.com/Articles/16411/Ultra-simple-C-Read-Write-Lock-Class-for-Windows" rel="nofollow">http://www.codeproject.com/Articles/16411/Ultra-simple-C-Read-Write-Lock-Class-for-Windows</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425264</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Sat, 01 Nov 2014 13:22:54 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sat, 01 Nov 2014 14:58:22 GMT]]></title><description><![CDATA[<p>Schlanke Leser/Schreibersperren sind die Lösung!</p>
<p><a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa904937(v=vs.85).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/windows/desktop/aa904937(v=vs.85).aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425270</guid><dc:creator><![CDATA[posix]]></dc:creator><pubDate>Sat, 01 Nov 2014 14:58:22 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sat, 01 Nov 2014 18:06:56 GMT]]></title><description><![CDATA[<p>posix schrieb:</p>
<blockquote>
<p>Schlanke Leser/Schreibersperren sind die Lösung!</p>
<p><a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa904937(v=vs.85).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/windows/desktop/aa904937(v=vs.85).aspx</a></p>
</blockquote>
<p>FTFY:</p>
<p><a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa904937(v=vs.85).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/windows/desktop/aa904937(v=vs.85).aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425319</guid><dc:creator><![CDATA[oenone]]></dc:creator><pubDate>Sat, 01 Nov 2014 18:06:56 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sat, 01 Nov 2014 19:39:23 GMT]]></title><description><![CDATA[<p>simbad schrieb:</p>
<blockquote>
<p>In Zukunft sicher. Nur ist es ein Frage wie weit in die Zukunft es noch gehen muss bis es soweit ist.<br />
Ich entwickel viel im embedded Bereich. Da fängt man langsam mit dem Sprung von C-&gt;C++ an. Und die Compilerbauer sind noch weit C++11 entfernt.</p>
</blockquote>
<p>Von was redest du? Gängige Compiler können alle C++11.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425326</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sat, 01 Nov 2014 19:39:23 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sat, 01 Nov 2014 20:18:45 GMT]]></title><description><![CDATA[<p>Was Du suchst ist ein read-write-lock. Siehe <code>pthread_rwlock_init</code> und Konsorten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425329</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Sat, 01 Nov 2014 20:18:45 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sun, 02 Nov 2014 08:22:29 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>simbad schrieb:</p>
<blockquote>
<p>In Zukunft sicher. Nur ist es ein Frage wie weit in die Zukunft es noch gehen muss bis es soweit ist.<br />
Ich entwickel viel im embedded Bereich. Da fängt man langsam mit dem Sprung von C-&gt;C++ an. Und die Compilerbauer sind noch weit C++11 entfernt.</p>
</blockquote>
<p>Von was redest du? Gängige Compiler können alle C++11.</p>
</blockquote>
<p>Was sind denn gängige Compiler? Ich rede vom embedded Software Entwicklung. Da findet man CPUs von Freescale zum Beispiel S12Z und PowerPC und Konsorten.<br />
Das ist ein Gebiet in dem sich C++ erst langsam bis garnicht durchsetzt, obwohl ich das schon das eine oder andere mal vermisst habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425371</guid><dc:creator><![CDATA[simbad]]></dc:creator><pubDate>Sun, 02 Nov 2014 08:22:29 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sun, 02 Nov 2014 09:26:55 GMT]]></title><description><![CDATA[<p>Ja und auch auf solchen Plattformen kann man clang oder gcc verwenden. Beide Compiler haben Backends für praktisch jede erdenkliche Architektur bzw die wenigsten Features haben Einfluss darauf was das Backend wirklich in Maschinencode gießen muss. Was das Frontend macht ist ja egal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425376</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sun, 02 Nov 2014 09:26:55 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sun, 02 Nov 2014 09:37:48 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>Ja und auch auf solchen Plattformen kann man clang oder gcc verwenden. Beide Compiler haben Backends für praktisch jede erdenkliche Architektur bzw die wenigsten Features haben Einfluss darauf was das Backend wirklich in Maschinencode gießen muss. Was das Frontend macht ist ja egal.</p>
</blockquote>
<p>In der Industrie werden aber gcc und clang nicht immer eingesetzt. Gerade wenn Software nach ASIL entwickelt wird.</p>
<p>Hinzukommt das ich bei einem kommerziellen Compilerbauer zwar hohe Kosten habe, weil die halt richtig zulangen, aber dafür innerhalb von wenigen Tagen auch Bugfixes bekomme und das dann kostenfrei.<br />
Ich muss also nicht erst Compilerbau studieren oder jemanden einstellen der den gcc/clang debuggen kann wenn der mal was nicht so macht wie er soll.</p>
<p>Dabei ist von der Risikobetrachtung für ein Projekt unerheblich das die Bug-Listen des gcc vielleicht klein sind. Wenn dann in der Erfolgsgeschichte sowas wie der gcc-4.9.0 auftaucht ist das Teil für lange Zeit in der Industrie gelaufen.</p>
<p>Wenn dem Projektmanager ein Fehler im Compiler gemeldet wird dann muss er auch einen definierten Zeitrahmen kennen bis wann das beseitigt ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425380</guid><dc:creator><![CDATA[simbad]]></dc:creator><pubDate>Sun, 02 Nov 2014 09:37:48 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sun, 02 Nov 2014 10:09:12 GMT]]></title><description><![CDATA[<p>Diese Meta-Probleme bezüglich potentiell unausgereifter Software kann ich zwar irgendwo verstehen aber naja. Wir verwenden auf der Arbeit sogar early releases.<br />
Aber halt Java.<br />
Bezweifle dass jede Firma so an Dinosauriern hängt.</p>
<p>Im Endeffekt ist es halt so dass spätestens ab der Erzeugung von Zwischencode praktisch kein Unterschied mehr zwischen C, C++03 und C++11 bestehen sollte.<br />
Ist ja gerade der Sinn davon - man möchte Optimierungen und Codegenerierung sprachunabhängig durchführen.</p>
<p>Clang erzeugt LLVM IR. Die LLVM selbst ist sehr gut getestet &amp; stabil. Beim Clang selbst kann man im Zweifelsfall einfach eine alte Version nehmen. Wobei das Frontend mMn. weniger falsch machen kann. Wenn der Parser Macken hat dann bekommt man das sowieso direkt in Form von Compilerfehlern zu spüren. Ähnliches gilt für die semantische Analyse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425386</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sun, 02 Nov 2014 10:09:12 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sun, 02 Nov 2014 10:38:55 GMT]]></title><description><![CDATA[<p>Ich wollte nur mal darauf hinweisen das es eben nicht in jeder Umgebung C++11 gibt. Das nicht in jedem Umfeld gcc/clang Verwendung findet, aus den unterschiedlichsten Gründen.</p>
<p>Für das vom Threadersteller beschrieben Problem isses einfach egal ob er pthreads, boost, WinAPI oder C++11 benutzt. Wichtig ist das er beim schreiben locked und vor allem nur einen Mutex, whatever, benutzt um die Zugriffe zu synchronisieren.<br />
Er kann theoretisch auch unsynchronisiert arbeiten. Wird dann aber wahrscheinlich das eine oder andere mal ein Haufen Schrott rauskommen. Wenn er effektiv den Schrott erkennen kann, braucht er keine Synchronisation.</p>
<p>Wir wechseln während der Entwicklung nach Möglichkeit keine Compiler mehr aus. Die werden am Anfang auf den aktuellsten Stand gebracht und werden dann bis zum Ende verwendet, mit Ausnahme von Bugfixes.<br />
Ist aber auch von Projekt zu Projekt anders.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425391</guid><dc:creator><![CDATA[simbad]]></dc:creator><pubDate>Sun, 02 Nov 2014 10:38:55 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sun, 02 Nov 2014 12:15:05 GMT]]></title><description><![CDATA[<p>simbad schrieb:</p>
<blockquote>
<p>Für das vom Threadersteller beschrieben Problem isses einfach egal ob er pthreads, boost, WinAPI oder C++11 benutzt.</p>
</blockquote>
<p>Selbstverständlich ist es für die konkrete Fragestellung egal. Genauso selbstverständlich sollte man in einem C++ Projekt kein C-API einsetzen, wenn man die Aufgabe mit Sprachmitteln oder einer C++ Bibliothek lösen kann. Beim Fragesteller wird das höchstwahrscheinlich der Fall sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425410</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sun, 02 Nov 2014 12:15:05 GMT</pubDate></item><item><title><![CDATA[Reply to pthread_mutex_t - Ein &amp;quot;Master-lock&amp;quot;? on Sun, 02 Nov 2014 12:54:30 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>simbad schrieb:</p>
<blockquote>
<p>Für das vom Threadersteller beschrieben Problem isses einfach egal ob er pthreads, boost, WinAPI oder C++11 benutzt.</p>
</blockquote>
<p>Selbstverständlich ist es für die konkrete Fragestellung egal. Genauso selbstverständlich sollte man in einem C++ Projekt kein C-API einsetzen, wenn man die Aufgabe mit Sprachmitteln oder einer C++ Bibliothek lösen kann. Beim Fragesteller wird das höchstwahrscheinlich der Fall sein.</p>
</blockquote>
<p>Die Programmiersprache C++ ist an vielen Stellen so definiert worden das man sehr wohl C Funktionen einfach so verwenden kann. Umsonst gibt es die header files cstdio, cstring, cctype etc. wohl nicht.<br />
Die Fixe Idee keine C-Funktionen in einem C++ Projekt zu verwenden ist schlicht eine Frage des persönlichen Geschmacks. Es gibt aber keinen technischen oder im Standard der Sprache versteckten Grund die C-Funktionen zu verschmähen wenn sie denn die geforderte Aufgabe erfüllen.<br />
Das man bei den IO funktionen ein wenig vorsichtiger sein muss liegt an einem unter Umständen konkurrierenden Umgang mit resourcen. Die Verwendung von iostreams und printf in einem Programm sollte man tunlichst unterlassen.</p>
<p>Es ist durchaus nicht unüblich C Programme mit einem C++ Compiler zu übersetzen um von der besseren Typsicherheit zu profitieren. Und es ist auch völlig unproblematisch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425420</guid><dc:creator><![CDATA[simbad]]></dc:creator><pubDate>Sun, 02 Nov 2014 12:54:30 GMT</pubDate></item></channel></rss>