<?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[thread sperren]]></title><description><![CDATA[<p>Hi.<br />
ich habe gerade ein Problem, und zwar habe ich ein Programm,dass gespeicherte Daten über befehle auslesen kann! Alle 15 sekunden wird in einem neuen thread eine Aktualisierung der Daten durchgeführt, d.h. es wird auf diesen Speicherbereich schreibend zugegriffen.<br />
Das problem ist, dass das programm logischer weise abbricht wenn ich während des aktualisierungs vorgang, lesend auf die Daten zugreifen will.<br />
Und jetzt zu meiner Frage, wie kriege ich es hin, dass während des Schreibvorgangs, ein Lesevorgang gesperrt wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/252909/thread-sperren</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 04:07:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/252909.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Oct 2009 10:59:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to thread sperren on Mon, 26 Oct 2009 10:59:47 GMT]]></title><description><![CDATA[<p>Hi.<br />
ich habe gerade ein Problem, und zwar habe ich ein Programm,dass gespeicherte Daten über befehle auslesen kann! Alle 15 sekunden wird in einem neuen thread eine Aktualisierung der Daten durchgeführt, d.h. es wird auf diesen Speicherbereich schreibend zugegriffen.<br />
Das problem ist, dass das programm logischer weise abbricht wenn ich während des aktualisierungs vorgang, lesend auf die Daten zugreifen will.<br />
Und jetzt zu meiner Frage, wie kriege ich es hin, dass während des Schreibvorgangs, ein Lesevorgang gesperrt wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798450</guid><dc:creator><![CDATA[newbie1243]]></dc:creator><pubDate>Mon, 26 Oct 2009 10:59:47 GMT</pubDate></item><item><title><![CDATA[Reply to thread sperren on Mon, 26 Oct 2009 11:01:04 GMT]]></title><description><![CDATA[<p>z.B. mit einem Mutex.<br />
Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798452</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Mon, 26 Oct 2009 11:01:04 GMT</pubDate></item><item><title><![CDATA[Reply to thread sperren on Mon, 26 Oct 2009 11:14:13 GMT]]></title><description><![CDATA[<p>Wenn du Funktionen für den Lese-/ Schreibzugriff auf den Speicherbereich hast, die von allen Threads verwendet werden, würde ich einfach die Lese- bzw. Schreibfunktionen selbst immer ein Mutex sperren lassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798462</guid><dc:creator><![CDATA[Sinthoras]]></dc:creator><pubDate>Mon, 26 Oct 2009 11:14:13 GMT</pubDate></item><item><title><![CDATA[Reply to thread sperren on Mon, 26 Oct 2009 11:48:33 GMT]]></title><description><![CDATA[<p>Hi. Danke für die schnellen Antworten, das problem ist ich habe noch nie mit Mutex gearbeitet, habt ihr da vielleicht irgendwelche tutorials, die ich mir durchlesen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798480</guid><dc:creator><![CDATA[newbie1243]]></dc:creator><pubDate>Mon, 26 Oct 2009 11:48:33 GMT</pubDate></item><item><title><![CDATA[Reply to thread sperren on Mon, 26 Oct 2009 11:55:04 GMT]]></title><description><![CDATA[<p>Also falls du bei POSIX bist, gibt hier immerhin mal eine kleine Referenz:<br />
<a href="http://www.qnx.com/developers/docs/6.3.2/neutrino/lib_ref/lib-p.html" rel="nofollow">http://www.qnx.com/developers/docs/6.3.2/neutrino/lib_ref/lib-p.html</a></p>
<p>Und dabei im Speziellen:<br />
<a href="http://www.qnx.com/developers/docs/6.3.2/neutrino/lib_ref/p/pthread_mutex_lock.html" rel="nofollow">http://www.qnx.com/developers/docs/6.3.2/neutrino/lib_ref/p/pthread_mutex_lock.html</a></p>
<p>Da könntest du dich schonmal ein bisschen reinlesen.<br />
(Ein richties Tut wäre natürlich schöner, hab ich aber gerade nicht bei der Hand leider).</p>
<p>Deine Getter/ Setter konsturierst du dann etwa so:</p>
<pre><code class="language-cpp">// Pseudocode
int get()
{
pthread_mutex_lock(....);
     int a = // Zugriff auf den Speicher
pthread_mutex_unlock(....);
return a;
}

void set(int a)
{
pthread_mutex_lock(...);
      //Speicherzugriff
pthread_mutex_unlock(...);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1798486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798486</guid><dc:creator><![CDATA[Sinthoras]]></dc:creator><pubDate>Mon, 26 Oct 2009 11:55:04 GMT</pubDate></item><item><title><![CDATA[Reply to thread sperren on Mon, 26 Oct 2009 14:09:32 GMT]]></title><description><![CDATA[<p>newbie1243 schrieb:</p>
<blockquote>
<p>Hi. Danke für die schnellen Antworten, das problem ist ich habe noch nie mit Mutex gearbeitet, habt ihr da vielleicht irgendwelche tutorials, die ich mir durchlesen kann?</p>
</blockquote>
<p>Wo kommen denn die Threads her? Also, welche Bibliothek/Schnittstelle wird benutzt?</p>
<p>Ich würde sonst immer <a href="http://www.boost.org/doc/libs/1_40_0/doc/html/thread.html" rel="nofollow">Boost.Thread</a> empfehlen -- auch weil man sich dann, wenn C++0x &quot;rauskommt&quot; nicht mehr großartig umgewöhnen muss.</p>
<p>Was Tutorials angeht, fällt mir spontan nur der <a href="http://www.justsoftwaresolutions.co.uk/threading/multithreading-in-c++0x-part-4-protecting-shared-data.html" rel="nofollow">Blog</a> von Anthony Williams ein. Der hatte bei Boost.Thread seine Hände maßgeblich im Spiel. In der Artikel-Serie auf seinem Blog geht's allerdings um die Thread-Bibliothek des kommenden Standards, welche aber -- wie gesagt -- viele viele Ähnlichkeiten zu Boost.Thread aufweist.</p>
<p>Am besten ist wahrscheinlich ein gutes Buch (kann ich auch leider keine Tipps geben). Ich hatte das mit den <em>threads</em>, <em>mutexes</em>, <em>condition variables</em> erst <em>richtig</em> verstanden, als ich mir eine entsprechende Vorlesung (&quot;parallel programming in java&quot;) angehört hatte. Mit &quot;richtig verstehen&quot; meine ich auch Design-Prinzipien und Herangehensweisen, die Fehler reduzieren.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798570</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Mon, 26 Oct 2009 14:09:32 GMT</pubDate></item></channel></rss>