Frage

Wenn Sie nicht wissen, was FUTEX und LinuxThreads-0.9 sind, antworten Sie bitte nicht.

Kann ich ein Programm futex-basiert mit Mutex aus LinuxThreads-0,8 oder -0,9 mischen (was in allen GLIBC <= 2,2 und in allen UCLIBC verwendet wurde)?

Ich brauche interprozess mutex (pshared One, pthread_process_shared).

Wenn also Threads von LinuxThreads PThread_Manager gestartet und verwaltet werden, wird es dann durch FUTEX-basierte Schlaf und Wake verwirrt?

Kann ich futex-basierte Mutexes sowohl für Interprozess als auch für die Synchronisation zwischen den Prozess und für die Inter-Thread-Synchronisation verwenden?

War es hilfreich?

Lösung

Ich verstehe nicht, warum Sie nicht konnten.

Sie werden natürlich nicht in der Lage sein, Phreads zu verwenden. Sie werden wahrscheinlich die PThread -Bibliothek mit den alten Mutexes verwenden und benötigen den Futex -Code in einer anderen Bibliothek.

Sie können ein LinuxThreads -Mutex offensichtlich nicht sperren und es mit einer Futex -Funktion freischalten, die niemals funktionieren würde.

Aber wenn ein Thread im Kernel blockiert ist, der auf einen Futex wartet, sehe ich nicht, wie es sich unterscheidet, als es auf einer Festplatten -E/A -Operation blockiert wird, und LinuxThreads verarbeitet so gut genug.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top