begin process at 2012 05 30 04:49:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

synchronisation multithread


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

synchronisation multithread

mercredi 7 avril 2004 à 17:09:04 | synchronisation multithread

hak5


salut a tous,

je developpe une appli faisant tourner 2 threads.
je synchronise mes deux thread grace a une variable globale : il y a un thread qui met a jour cette variable, tandiske l'autre thread attend la modif de cette variable.

J'ai pu lire dans un tutoriel API windows qu'il etait deconseillé d'attendre dans une boucle au sein d'un thread le changement d'etat d'une variable globale.

Que dois je faire pour booster mon appli ?
est il recommandé d'utiliser un mutex ?

merci d'avance pour vos conseils.
mercredi 7 avril 2004 à 18:39:40 | Re : synchronisation multithread

cosmobob

ya des objets plus elaborés pr la synchronisation, genre les event. HANDLE evenement = CreateEvent(NULL,true,false,NULL);
et if (WaitForSingleObject(evenement,0) == WAIT_OBJECT_0)
pour tester l'etat de evenement (signalé ou non signalé)(SetEvent( ... ) permet de signaler un Event).
bref le prob cé ke 'evenement' doit etre une variable partagé par les 2 threads, mais la c'est pas un probleme, vu que WaitForSingleObject(evenement,0) se débrouille bien.
(le 0 correspond a un temps d'attente de 0ms, si tu mets 5000, ca va bloquer pdt 5 sec, et renvoyer WAIT_TIMEOUT si l'evenement a pas été signalé, et ca va bloquer pdt moins longtemps si entre temps tu le signales depuis l'autre thread, et la ca renvoie WAIT_OBJECT_O)
en gros kan t'as 2 threads, partager une variable (classique) ds laquelle un peu ecrire et l'autre lire n'est pas une bonne idée ! et qd les deux peuvent y ecrire, ca peu faire des resultats imprévus. (genre une incrementation ds chak thread, mé en meme temps peu conduire a une seule incrémentation de la var. globale)

en gros si le thread 2 veut attendre ke le thread 1 ait fé kek chose, ds le 2 tu mets WaitForSingleObject(evenement,INFINITE), et dans le 1 tu mets SetEvent(evenement) au moment ou le 2eme doit démarrer.

en mrelisant cé pas super clair du premier coup mais bon ;)
jeudi 8 avril 2004 à 04:39:53 | Re : synchronisation multithread

ymca2003

le bouquin de Richter (JR4.zip)de donner tous les conseils sur la synchro thread:
[ Lien ]

jeudi 8 avril 2004 à 09:28:54 | Re : synchronisation multithread

hak5

je vous remercie pour vos conseils.

je vais etudier ca de suite.
merci encore une fois !


Cette discussion est classée dans : appli, variable, thread, synchronisation, multithread


Répondre à ce message

Sujets en rapport avec ce message

Thread et multiprocesseur [ par themaste ] Salut a tous!Voila, j'ai une appli multithread, avec un principal, et 3 autres dit "secondaire".Le premier est principale dans le sens ou c'est lui qu Thread ou timer ? [ par christophelande ] Bonjour à tous. Je suis en train de développer une appli permettant de visualiser (sous forme de jauge) l'activité CPU, la RAM utilisée, le traffic ré MFC Probleme d'utilisation de variable propre au graphique [ par donslim ] Salut à tous : Donc voilà mon problème,je travaille avec MFC et  je voudrais utiliser ma variable m_L1 de type CListBox dans un thread qui est défini thread, mutex et variable partagée [ par bloobird0 ] hello all,je suis en train d'expérimenter pour la première fois les threads en C sous Windows et je voudrais confirmation ou remarques sur ce qui suit Multithread... [ par ben78 ] Bonjour, Je développe une petite appli pour contrôler un modem série.Pour lire les datas du port série j'utilise un Thread.Tout marche bien, mais quan linux multithread [ par yoosh ] bonjour a toi,j'ai besoin d'aide.c sur linux multithread a programmer en c.il y a ecrire un multithread program avec posix threads en c .1 thread dev CSocket : Multithread ? [ par guiguikun ] Pourquoi est-ce que je me retrouve avec une assertion error à chaque fois que je veux accepter une connection d'un client dans un nouveau thread (AfxB Afficher une variable provenant d'un Thread ds une boite de dialogue [ par matge ] BonjourJe travaille avec une boite de dialogue qui lance un Thread de service. J'enregistre des variables dans ceThread, j'aimerais les afficher dans Synchronisation!!! [ par PunkDude424 ] J'ai un problème avec la synchronisation de ThreadVoilà, je fais un "ScreenSaver" qui affiche des point a des temps radom et dune durée random aussi.. MultiThread: Probleme [ par CriPpLe ] Bonjour, depuis longtemps j'essai de creer un nouveau thread dans mon programme pour qu'il excecute des actions sans pour autant freezer le programme


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales