Tag: mutex
Ein mutex (von“mutual exclusion“) ist ein Mechanismus zur Gewährleistung der Integrität, wenn die gleichen Daten oder Ressourcen zugegriffen wird (insbesondere, verändert) gleichzeitig von mehreren threads.
4
Antworten
Ich versuche, die Umsetzung eines producer/consumer-Modell multithreaded-Programm in C++ für ein Projekt an dem ich arbeite. Die grundlegende Idee ist, dass der main-thread erzeugt einen zweiten thread zu beobachten, eine serielle Schnittstelle für die neuen Daten, die
3
Antworten
Habe ich eine message-queue auf einem gemeinsamen system. Dieser Warteschlange erfolgt durch 2 Prozesse, die laufen auf 2 anderen Maschinen. Ich brauche, um den Zugriff auf diese Warteschlange von der 2-Prozesse. Also brauche ich eine "Netzwerk-mutex". Wie
2
Antworten
Lesen der verschiedenen Beiträge auf SO auf Unterschiede zwischen den beiden (mutex und semaphore) komme ich zum folgenden Schluss bitte korrigieren Sie mich, wenn ich falsch bin.Dies ist vor allem im Zusammenhang mit windows. Ich verstehe, dass
3
Antworten
Habe ich gelesen, dass Mutexe und Semaphoren erhalten eine Liste der wartenden Prozesse und weckt Sie auf, wenn der aktuelle thread schließt den kritischen Abschnitt. Wie Mutexe und Semaphoren tun? Nicht Sie stören der Prozess-scheduler Entscheidungen? InformationsquelleAutor
2
Antworten
Merry Xmas! Bin ich beim Lesen des Das Little Book of Semaphores. Es ist eine Implementierung von Semaphoren in C in dem Buch, das ich nicht ganz verstehen. Siehe unten für code. Es ist dies wakeups variable.
3
Antworten
Einer Weile habe ich darüber nachgedacht, wie die Umsetzung verschiedener Synchronisations-primitive, die in Bezug auf einander. Zum Beispiel, in pthreads Sie bekommen Mutexe und condition-Variablen und-aus diesen bauen kann Semaphoren. In der Windows-API (oder zumindest ältere Versionen
4
Antworten
Windows-Mutex scheint damit eine erworbene Sperre wieder erworben zu werden (rekursiv), wenn der thread derzeit im Besitz der Sperre versucht, es zu erwerben. Aber, pthread posix-basiert sperren nicht erlauben, solch ein Verhalten. Gibt es eine compile-Zeit-makro oder
1
Antworten
ich bin vor ein deadlock in einem meiner c-Anwendung(eine große code -) und ich war in der Lage, die debug-down die Bühne, wo ich druckte einen mutex. Es sieht aus wie unten - {__data = {__lock =
3
Antworten
Habe ich eine stl-map, die ich sein möchte, synchronisiert über mehrere threads. Derzeit habe ich... Funktion (Modifiziert Karte) void Modify(std::string value) { pthread_mutex_lock(&map_mutex); my_map[value] = value; pthread_mutex_unlock(&map_mutex); } Funktion B (Liest Karte) std::string Read(std::string key) { std::string
1
Antworten
Ich versuche, einen C++11 std::condition_variable, aber wenn ich versuche zu sperren, die unique_lock Zusammenhang mit ihm von einem zweiten thread, bekomme ich eine exception "Resource deadlock vermieden". Der thread, der erstellt, es kann sperren und entsperren Sie
6
Antworten
Wenn ich die Programmierung pthread mutex in ich verwendet, um mutex lock-variable (pthread_mutex_t mutex) weltweit. Wenn ich sehe, viele Beispiel-Programm meisten Fällen mutex-variable gesetzt Global. #include <stdio.h> #include <stdlib.h> #include <pthread.h> void *add1_fun(void* arg); void *add2_fun(void* arg);
1
Antworten
Gibt es eine Möglichkeit, ich kann sagen std::lock_gaurd zu nennen try_lock statt lock wenn es erwirbt die mutex? Die einzige Möglichkeit die ich mir vorstellen könnte, ist die Verwendung std::adopt_lock: if (!_mutex.try_lock()) { //Handle failure and return
8
Antworten
[Edit: (kopiert aus einem Kommentar), Wie es sich herausstellt, lag das problem woanders, aber ich danke Ihnen allen für Ihre Eingabe.] Ich haben ein gemeinsames container-Klasse, die verwendet eine einzelne mutex zu sperren, push() und pop ()
1
Antworten
Meine Anwendung plötzlich nicht mehr funktioniert. und ich ausgeführt folgenden comand, #ps -elf | grep aeroServ und Bekam die folgende Ausgabe, #0 S binunun 5634 2300 0 80 0 - 7781 futex_ 15:41 pts/0 00:00:04 Was ich
2
Antworten
Haben wir mehrere Schlösser (boost::mutex) in statische Klassen, aber wenn das Programm beendet wird, pthread_mutex_destroy scheitert im Destruktor des mutex (es ist eine Behauptung überprüfen Sie diese in boost). Soweit ich weiß, pthread_mutex_destroy schlägt nur fehl, in
2
Antworten
Blick auf C++ - compiler unterstützt, es scheint, dass ohne Zeitangabe version von std::shared_mutex steht in den GCC 5.0+. Aber auch mit gcc version 5.3.0 20151204 (Ubuntu 5.3.0-3ubuntu1~14.04), und kompilieren mit -std=c++1z eine einfache Initialisierung einer freigegebenen
3
Antworten
Ich habe ein paar jobs in Jenkins, die Verwendung von Selen in ändern einer Datenbank über eine website-front-end. Wenn einige dieser jobs gleichzeitig ausgeführt werden, Fehler aufgrund von dirty reads führen kann. Gibt es eine Möglichkeit zu
1
Antworten
The Linux Programming Interface Buch ist ein Stück code (Produzent/konsument), um zu zeigen, wie die condition-variable funktioniert: static pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER; static pthread_cond_t cond = PTHREAD_COND_INITIALIZER; static int avail = 0; while (TRUE) { s =
1
Antworten
Habe ich 2 Prozesse, die ausgeführt wird, den gleichen code: #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <string.h> #include <semaphore.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h> #include <sys/wait.h> #include <pthread.h> #ifndef _POSIX_THREAD_PROCESS_SHARED #error This system does not
3
Antworten
Ich Frage mich, welche der folgenden war, die vorgeschlagenen Muster bei der Verwendung von Mutex (oder Semaphoren oder ReadWriteLockSlims etc.). Sollte die erste Schleuse passieren, in oder außerhalb der try-Anweisung? Ist es unwichtig? _mutex.WaitOne() try { //critical
2
Antworten
Gibt es eine Beschränkung in der maximalen Anzahl der Mutexe pro Prozess/thread in einem Asp.net Anwendung? Nur im Falle der Ziel-Betriebssysteme sind: Windows XP Pro, server 2003/2008 und Windows 7 in Naher Zukunft. In der Regel die
6
Antworten
Ich habe irgendwo gelesen (kann nicht finden, die Seite nicht mehr), dass lock-free data-Strukturen sind effizienter "für bestimmte workloads" das scheint zu bedeuten, manchmal sind Sie wirklich langsamer oder der Gewinn aus Ihnen kann null sein in
2
Antworten
PHP anscheinend unterstützt nun auch ein Thread Klasse. Es gibt auch eine Mutex und Cond Klasse. Braucht man trotzdem, um es zu kompilieren mit den guten Optionen, und fügen Sie eine PECL Erweiterung, es zu haben. Gibt
2
Antworten
Ich versuche, mit der pthread-mutex-Variablen und die Barriere synchronisieren die Ausgabe von meinem Programm, aber es ist nicht so zu arbeiten, wie ich es mir vorstelle. Jeder thread ist zu sehen, seine Letzte Wert alle 20 Werte
4
Antworten
Beiden threads in das Programm abwechselnd drucken von geraden und ungeraden zahlen bis 100. Ich habe dies ausprobiert und es hat funktioniert. Gibt es eine Möglichkeit, den Zugriff auf den Wert der gemeinsamen Daten in den Haupt-und
5
Antworten
Arbeite ich eine Anwendung nur eine Instanz existieren muss, zu einem bestimmten Zeitpunkt. Es gibt mehrere Möglichkeiten, dies zu erreichen: Überprüfen Sie die Laufenden Prozesse für Sie eine passende unserer EXE-name (unzuverlässig) Finden Sie die wichtigsten Fenster
3
Antworten
Ich versuche zu implementieren ist sehr einfach, Windows-Ereignisse in Linux. Nur für mein Szenario - 3 threads, 1 Haupt-und 2 sekundäre. Jeder von sekundären threads erhöhen, 1 Fall von SetEvent und der main-thread warten. Beispiel: int main()
9
Antworten
Ich habe den folgenden code: using (Mutex mut = new Mutex(false, MUTEX_NAME)) { if (mut.WaitOne(new TimeSpan(0, 0, 30))) { //Some code that deals with a specific TCP port //Don't want this to run at the same time
1
Antworten
Ich den folgenden code verwenden, synchronisieren sich gegenseitig ausschließenden Zugriff auf eine freigegebene Ressource zwischen mehreren Laufenden Prozessen. Den mutex erstellt wird, die als solche: Mutex mtx = new Mutex(false, "MyNamedMutexName"); Dann habe ich mit dieser Methode
2
Antworten
Einem Programm erstellt einen mutex als Teil seiner start-up. Ich weiß nicht, das format dieser mutex-so fragte ich mich, ob es einen Weg gibt, um eine Liste der alle nicht-abgebrochener mutex, öffnen Sie das Programm, erhalten Sie
3
Antworten
Ich bin mit pthread_mutex_t in einem C++ - Programm, wie folgt: class Mutex : public noncopyable { public: Mutex() { pthread_mutex_init(&m_mutex, NULL); } void acquire() { pthread_mutex_lock(&m_mutex); } void release() { pthread_mutex_unlock(&m_mutex); } private: pthread_mutex_t m_mutex; };
1
Antworten
Brauche Hilfe mit dem synchronisieren von zwei threads mit mutex. Iam neu in C und Mutexe und Im nicht sicher, was hier zu tun ist. Der code hat zwei threads, zählt bis zehn und druckt jede Zahl,
4
Antworten
Ich arbeite derzeit an einem problem, das simuliert eine erweiterte Hersteller-Worker-Modell. In diesem problem, gibt es 3 Arbeiter und 3 Werkzeuge zur Verfügung, und für die Arbeitnehmer zu arbeiten, Sie benötigen 2 Werkzeuge (und Materialien, aber die
2
Antworten
Den pthread_mutex_timedlock Dokumentation sagt, dass abs_timeout dauert CLOCK_REALTIME. Aber wir alle wissen, dass es unangebracht ist für das timing einer bestimmten Dauer (wegen der system-Uhrzeit-Einstellungen). Ist es ein Weg, um pthread lock timeout auf CLOCK_MONOTONIC dass ist
5
Antworten
Habe ich bemerkt, dass ich eine ziemlich große performance-Einbußen wenn ich einen Algorithmus, der locks und unlocks ein thread eine Menge. Gibt es eine Möglichkeit, zu helfen, diesen Aufwand? Würde die Verwendung einer semaphore werden mehr/weniger effizient?
7
Antworten
Hallo gibt es gute Leute, ich brauche etwas Hilfe. Schreibe ich eine Musik-player, die Musik-streams aus dem web. Wenn ich das betätigen der play-Taste, bevor die Musik vorbei ist die Pufferung will ich es, zu warten. Ich
12
Antworten
Möchte ich meine Anwendung um zu überprüfen, ob eine andere version von sich selbst ist bereits ausgeführt. Beispielsweise demo.jar gestartet, user klickt, es wieder zu laufen, aber die zweite Instanz erkennt "oh warte, es ist schon ein
2
Antworten
Habe ich gelesen, dass mutex ist ein semaphor mit dem Wert 1 (binärer semaphor), die verwendet wird, für die Durchsetzung der gegenseitigen Ausgrenzung. Ich diesen link Lesen Semaphore vs. Monitore - was ist der Unterschied? die sagt,
1
Antworten
Ich versuche zu implementieren ist eine leicht modifizierte version der Consumer - /Producer-Programm mit einem code, den ich suchte ich im internet. Es ist wie folgt mit meinen eigenen Modifikationen: /* * Solution to Producer Consumer Problem
2
Antworten
Ich bin stecken geblieben auf einem Reader/Writer-problem in C. Kann jemand mir erklären was ist passiert in dem code unten. Ich verstehe nicht, wie die Ausführung strömt nach dem pthread_create(&tid,NULL,writer,NULL) Linie. #include<pthread.h> //#include<semaphore.h> #include<stdio.h> #include<stdlib.h> pthread_mutex_t x,wsem;
6
Antworten
Die Mutex-Klasse ist sehr missverstanden und Globale Mutexe sogar noch mehr. Was ist gute, sichere Muster zu verwenden, wenn Sie Globale Mutexe? Ein, die Arbeit Unabhängig von der Ländereinstellung, meine Maschine ist in Ist garantiert das mutex
3
Antworten
An einigen stellen habe ich Leute gesehen, die erstellen einen thread-pool und erstellen von threads und eine Funktion auszuführen, die mit diesen threads. Beim aufrufen der Funktion boost::mutex wird durch Verweis übergeben. Warum es so gemacht wird?
3
Antworten
Ich weiß, ich weiß, der Titel meiner Nachricht vielleicht provozierend, da boost::mutex purposefuly nicht aussetzen, sperren /entsperren (um zu vermeiden, dead-locks). Jedoch die boost-Dokumentation Recht kurz auf diese Aspekte (um das Mindeste zu sagen), also Frage ich
6
Antworten
Ich Frage mich, ob in Java würde ich bekommen, kein seltsames Verhalten, wenn ich synchronisieren zweimal auf das gleiche Objekt? Das Szenario ist wie folgt pulbic class SillyClassName { object moo; ... public void method1(){ synchronized(moo) {
5
Antworten
Vom design std::mutex ist nicht beweglich, noch kopieren-constructable. Dies bedeutet, dass eine Klasse A, die hat einen mutex, nicht erhalten ein Standard-move-Konstruktor. Wie würde ich diese Art A verschiebbar in eine thread-sichere Weise? Die Frage hat eine
3
Antworten
Habe ich zwei Instanzen des gleichen Windows-Dienst. Sie überprüfen die Gesundheit der jeweils anderen und berichten, wenn irgendein Problem gefunden. Ich habe eine kritische Aufgabe, die durchgeführt werden muss, also bei mir läuft es mit einer fail-over-Konzept,
2
Antworten
Ich erwarten, um die zahlen von 0 bis 4 in zufälliger Reihenfolge, aber stattdessen habe ich einige nicht synchronisierte Durcheinander Was ich falsch mache? #include <iostream> #include <windows.h> #include <process.h> using namespace std; void addQuery(void *v );
6
Antworten
#include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <pthread.h> #include <semaphore.h> #define WORK_SIZE 1024 pthread_mutex_t work_mutex; char work_area[WORK_SIZE]; void *thread_start(void *); int main() { pthread_t a_thread; pthread_mutex_init(&work_mutex,NULL); pthread_create(&a_thread,NULL,thread_start,NULL); while(1) { pthread_mutex_lock(&work_mutex); printf("Enter some text\n"); fgets(work_area, WORK_SIZE,
1
Antworten
Ich bin ein bisschen verwirrt, wie man zu initialisieren und umzusetzen ein pthread-mutex-und condition-variable. Das Ziel des Programms ist es, die Produzenten legen eine bestimmte Anzahl von int-Werten in eine queue und Verbraucher nehmen die ints aus
7
Antworten
Damit nur eine einzige Instanz einer Anwendung ausgeführt, ich bin mit mutex. Der code ist unten angegeben. Ist das der richtige Weg, es zu tun? Gibt es irgendwelche Fehler im code? Wie um zu zeigen, die bereits