2016-05-28 19 views
1

Wie können Threads ihre Operation synchronisieren? Da sich die Threads innerhalb desselben Prozesses Ressourcen teilen, wie können sich die Threads so verhalten, dass sie andere Threads nicht beeinträchtigen? Bitte erklären Sie es in einer leicht verständlichen Sprache. Danke an alle Experten!Wie können Threads ihre Operation synchronisieren?

+0

Diese Seite wird Ihnen helfen: https://en.wikipedia.org/wiki/Synchronization_%28computer_science%29#Thread_or_process_synchronization – user20160

+0

Das hat geholfen! Vielen Dank :) – Anonymous

Antwort

1

Stellen Sie sich eine schmale Tür vor, an der die Menschen nacheinander die Tür passieren können. Manchmal, wenn zu viele Leute sind, bilden sie eine Schlange. Also richtig programmierte Threads - sie folgen Konventionen wie nicht versuchen, die Tür zu passieren, wenn sie besetzt ist. Schlecht programmierte Threads, ebenso wie schlecht gelaunte Leute, können die Konventionen ignorieren und eine Störung verursachen.

Die Hauptabstraktion in Multithreading-Programmierung ist eine Ressource - ein Bereich des Speichers, der höchstens zu einem Thread gehören kann. Threads verlangen nach Ressourcen, warten auf sie, besitzen sie - und können nur lesen oder schreiben in diesen Speicher, während sie schulden - und sie befreien.

Es gibt viele Synchronisierungsprimitive für den Umgang mit Ressourcen, am wichtigsten sind Semaphore, Monitore und blockierende Warteschlangen.

Programmierer, die ein Multithreading-Programm entwerfen möchten, sollten zuerst einen Plan erstellen, welche Art von Ressourcen verwendet werden und wie Threads sie austauschen würden. Wählen Sie dann aus, welche Standard-Synchronisationsfunktionen verwendet werden, oder entwickeln Sie neue Funktionen und programmieren Sie diese. Spezialisierte Einrichtungen werden normalerweise mit Monitoren hergestellt.

Das Unterrichten der Multithreading-Programmierung beginnt oft mit der Verwendung von Monitoren für die Thread-Interaktion. Das ist falsch. Zunächst sollte ein Student die Verwendung von Standardmitteln beherrschen - Semaphoren und blockierende Warteschlangen, die für 95% der Fälle ausreichen, und erst dann lernen, spezialisierte Einrichtungen mit Monitoren zu entwerfen.