Heim  >  Artikel  >  Welche Kommunikationsmethoden gibt es zwischen Threads?

Welche Kommunikationsmethoden gibt es zwischen Threads?

不言
不言Original
2019-04-08 13:59:1151539Durchsuche

Welche Kommunikationsmethoden gibt es zwischen Threads?

Die Kommunikationsmethoden zwischen Threads sind wie folgt:

1. Nachrichtenwarteschlange, die am häufigsten verwendet wird Die eine und die flexibelste ermöglicht die Übertragung komplexer und einfacher Datenstrukturen durch benutzerdefinierte Datenstrukturen.

In der Windows-Programmierung kann jeder Thread über eine eigene Nachrichtenwarteschlange verfügen (der UI-Thread verfügt standardmäßig über eine eigene Nachrichtenwarteschlange und eine eigene Nachrichtenschleife, und der Arbeitsthread muss die Nachrichtenschleife manuell implementieren), sodass Nachrichten vorhanden sein können Wird zur Kommunikation zwischen Threads verwendet. sendMessage, postMessage.

Nachricht definieren #define WM_THREAD_SENDMSG=WM_USER+20;

Nachrichtenfunktionsdeklaration hinzufügen afx_msg int OnTSendmsg();

Nachrichtenzuordnung hinzufügen ON_MESSAGE(WM_THREAD_SENDMSG,OnTSM)

Fügen Sie die Implementierungsfunktion von OnTSM() hinzu

Fügen Sie die PostMessage-Nachrichtenfunktion in der Thread-Funktion hinzu

2 Verwenden Sie globale Variablen

Threads Der Prozess Memory Sharing ist eine gängige Kommunikations- und Interaktionsmethode.

Hinweis: Es ist am besten, beim Definieren globaler Variablen volatile zu verwenden, um zu verhindern, dass der Compiler diese Variable optimiert.

3. Verwenden Sie die Ereignisklasse CEvent, um die Kommunikation zwischen Threads zu implementieren.

Ereignisobjekte haben zwei Zustände: signalisiert und nicht signalisiert. Threads können Ereignisse im signalisierten Zustand überwachen, damit sie erkannt werden können Führen Sie zum richtigen Zeitpunkt Operationen für Ereignisse durch.

1) Erstellen Sie ein Objekt der CEvent-Klasse: CEvent threadStart; es befindet sich standardmäßig in einem nicht kommunizierenden Zustand;

2) threadStart.SetEvent(); ;

3) Rufen Sie WaitForSingleObject() auf, um das CEvent-Objekt zu überwachen

Das obige ist der detaillierte Inhalt vonWelche Kommunikationsmethoden gibt es zwischen Threads?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn