Ich habe ein großes Problem, ich kann nicht herausfinden, warum Mutexe in C nicht so funktionieren, wie ich es erwarte. Das ist mein Code:
%Vor%Ich erwarte, dass das Programm zuerst 100 "func" -Nachrichten und dann 100 "anotherFunc" -Nachrichten druckt. Was ich erwarte, ist die Ausführung, um func zu erreichen und den Mutex zu sperren. Wenn die Ausführung anotherFunc erreicht, erwarte ich zu warten, bis Func den Mutex freigibt. Aber ich bekomme eingegriffene Nachrichten wie
funktioniert Funk Funk anotherFunc anotherFunc anotherFunc Funk anotherFunc
Ich verstehe nicht, wie das Ding funktioniert. Bitte helfen Sie!
Ich habe einige Übersetzungsfehler
Ich konnte int i in für Schleife
Verwendete einen Argumentnamen arg als Argument für die Threads "func" und "anotherFunc"
Ich habe pthread_join benutzt, bevor den Mutex zerstört hat.
Auf diese Weise zerstöre ich meinen Mutex "mymutex", nachdem beide Threads "func" und "anotherFunc" ihre Ausführung beendet haben
Auch jeder Thread hat jetzt seine eigene Thread-ID "mythread1" und "mythread2" . Auf diese Weise kann ich die Funktion pthread_join () für jeden Thread
%Vor%Tags und Links c multithreading multitasking mutex