Maison  >  Article  >  Quelles sont les méthodes de communication entre les threads ?

Quelles sont les méthodes de communication entre les threads ?

不言
不言original
2019-04-08 13:59:1151539parcourir

Quelles sont les méthodes de communication entre les threads ?

Les méthodes de communication entre les threads sont les suivantes :

1. L’un, et le plus flexible, permet de transférer des structures de données complexes et simples via des structures de données personnalisées.

Dans la programmation Windows, chaque thread peut avoir sa propre file d'attente de messages (le thread d'interface utilisateur est livré avec sa propre file d'attente de messages et sa propre boucle de messages par défaut, et le thread de travail doit implémenter manuellement la boucle de messages), afin que les messages puissent être utilisé pour communiquer entre les threads. Communication sendMessage, postMessage.

Définir le message #define WM_THREAD_SENDMSG=WM_USER+20;

Ajouter une déclaration de fonction de message afx_msg int OnTSendmsg();

Ajouter un mappage de message ON_MESSAGE(WM_THREAD_SENDMSG,OnTSM)

Ajoutez la fonction d'implémentation de OnTSM();

Ajoutez la fonction PostMessage Message dans la fonction de fil

2 Utilisez des variables globales

Threads dans. le processus Le partage de mémoire est une méthode de communication et une méthode d'interaction courantes.

Remarque : Il est préférable d'utiliser volatile lors de la définition de variables globales pour empêcher le compilateur d'optimiser cette variable.

3. Utilisez la classe d'événement CEvent pour implémenter la communication entre les threads.

Les objets d'événement ont deux états : signalé et non signalé. Les threads peuvent surveiller les événements dans l'état signalé afin qu'ils puissent être détectés. le moment approprié. Effectuer des opérations sur les événements.

1) Créer un objet de classe CEvent : CEvent threadStart ; il est dans un état non communicant par défaut

2) threadStart.SetEvent(); ;

3) Appelez WaitForSingleObject() pour surveiller l'objet CEvent

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn