begin process at 2012 02 13 14:38:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Général

 > 

synchronisation des threads


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

synchronisation des threads

samedi 24 mars 2007 à 11:08:23 | synchronisation des threads

viphadia

j'ai un problème de synchroniser trois threads(un serveur et 3 clients) chaque thread* appelle un autre thread**
alors 6 threads ;
*:emission des données(serveur).
**:reception des donnes(03 clients).
??????????

samedi 24 mars 2007 à 11:48:44 | Re : synchronisation des threads

Ombitious_Developper

Salut:

Penses à utiliser un groupe de threads.

classe: ThreadGroup

Ou bien tu peux jouer sur le méthodes de la classe Thread pour arrêter un thread momenténemment puis de l'envoyer une notification pour s'activer, bien sûr ça devrait se faire suivant le schéma que tu traces (sorte de diagramme de synchronisation).

Attention au deadlock.

________________________________________________________________________________
A.B. :  "Dieu nous donne des mains, mais il ne bâtit pas les ponts

mardi 27 mars 2007 à 10:07:04 | Re : synchronisation des threads

viphadia

merci
mais c'est pas le cas!!!
l'appel  de ces trois threads se fait  dans une boucle while comme suit:
calcule(){
while(condition)
{
thread1;
thread2;
thread3;


}
}
et ça le probleme  tout ce boucle d'une manière infinie ????(l'execution des trois thread est incomplète donc la condition nechange pas);
j'ai utulisé join() pour que l'execution des trois threads se termine puis il teste la condition à nouveau mais ça marche pas dans la 2 ieme iteration????
vendredi 30 mars 2007 à 23:12:42 | Re : synchronisation des threads

Ombitious_Developper

Salut:

Comme tu l'avais décrit (un thread émetteur / un thread récepteur), c'est un peu comme la relation producteur/consommateur, je te conseille d'utiliser les sémaphores pour définir le plan d'exécution de tes threads concurrents.

Une petite connaissance des sémaphores va te permettre de régler ton problème.
Les sémaphores sont comme leurs nom l'indique des barrières qui:
- bloquent le passage
- ou autorisent le passage
devant un thread demandant un service ou l'entrée à une section critique.

De cette manière tu es sûr que tu bloques certains threads et d'autoriser le thread voulu, un fois ce dernier termine sa tâche il peut autoriser les autres à entrer à la section critique qui est comme tu l'as décrit la modification du boucle.

classe: java.util.concurrent.Semaphore

 

________________________________________________________________________________
A.B. :  "Dieu nous donne des mains, mais il ne bâtit pas les ponts

vendredi 30 mars 2007 à 23:16:17 | Re : synchronisation des threads

Ombitious_Developper

Salut:

Une autre solution:

Thread1:

thread2.wait ();
thread3.wait ();
//code thread 1
thread3.notify ();
thread2.notify ();


Thread2:

thread1.wait ();
thread3.wait ();
// code thread 2:
thread3.notify ();
thread1.notify ();


Thread3:

thread1.wait ();
thread2.wait ();
// code thread 3
thread2.notify ();
thread1.notify ();

________________________________________________________________________________
A.B. :  "Dieu nous donne des mains, mais il ne bâtit pas les ponts

samedi 31 mars 2007 à 00:01:03 | Re : synchronisation des threads

viphadia

ok mais t'as aucune idée pour appler des threads dans une boucle?il me parait pas simple!!!!
samedi 31 mars 2007 à 01:47:35 | Re : synchronisation des threads

Ombitious_Developper

Salut:

Thread th = new Thread ():

// Appel: début d'exécution
th.start ();

________________________________________________________________________________
A.B. :  "Dieu nous donne des mains, mais il ne bâtit pas les ponts

samedi 31 mars 2007 à 02:02:13 | Re : synchronisation des threads

Ombitious_Developper

Salut:

Il y a une chose que je ne comprends pas. Pourquoi faire tous ces threads, on dirait que tu es en train d'écrire un programme client/serveur ordinaire.

Si oui, je pense qu'on peut résoudre le problème sans faire recoure à tout ce nombre de threads.

________________________________________________________________________________
A.B. :  "Dieu nous donne des mains, mais il ne bâtit pas les ponts

samedi 31 mars 2007 à 11:29:41 | Re : synchronisation des threads

Ombitious_Developper

Salut:

Pourquoi Thread.suspend et Thread.resume sont [deprecated]?

La méthode Thread.suspend provoque toujours un interblocage. Si le thread cible
détient un vérrou sur une ressource critique du système et quand ce dernier est
suspendu, alors aucun thread ne peut accèder à cette ressource jusqu'à ce que
le thread concerné est activé. Si ce thread essaye de vérouiller l'accès à cette resssource
avant de s'activer [resume] alors un interblocage en resulte. On appelle ces les thread de cette situation
[frozen processes].

C'est la traduction de ce que j'ai trouvé dans la documentation.

________________________________________________________________________________
A.B. :  "Dieu nous donne des mains, mais il ne bâtit pas les ponts

samedi 31 mars 2007 à 12:29:46 | Re : synchronisation des threads

viphadia

salut
c'est mon projet de fin d'études je suis en 5 ieme année informatique option intelligence artificielle mon  thème est " la tolérance aux pannes " l'architecture (client-serveur) 3clients et un seul serveur mais je developpe une application sur data mining le serveur décompose la bdd et envoie à chaque client une partie ,les clients effectuent des calculs et émissent les résultats au serveur et ce dernier fait des comparaison et des calculs et les renvoie aux clients et vice versa jusqu'à l'établissemet de toute règle associative possible;
dans le code de serveur j'ai 3 threads de reception et 3 d'émission chaque thread d'émission appel un threads de réception qui le convient et l'appel des threads d'emission dans main sera dans une boucle while et c'est ça mon problème???????
que je peux  faire alors

1 2

Cette discussion est classée dans : serveur, thread, synchronisation, threads, clients


Répondre à ce message

Sujets en rapport avec ce message

arreter une serie de thread [ par cuicui ] Bonjour a tous,J'ai creer une serveur attendant des connexions des clients grace à l'objet serverSocket.A chaque nouvelle connexion je lance un thread serveur multiconnexion clients (threads) [ par xav7822 ] bonjour j'ai cré un serveur qui peut gérer plusieurs connexion grace a des threads mais je n'arrive pas faire communiqué les clients entre eux en pass Groupe de thread [ par pingstar ] Bonjour,j'ai fiat une appli client/serveur. Mon serveur est multiclient, il lance donc un thread pour chaque demande de connexion. Ce que je voudrais thread & reseau [ par viphadia ] salut à tout le monde je suis entrain  de tester un code serveur et  03 clients normalement mon code fonctionne comme suit :le serveur compose la base thread/client/serveur [ par siwaro ] bonjourje veux réaliser une application serveur entre plusieurs appareils le serveur joue le role d'un switch ou d'un hub entre les différents clients synchronisation threads [ par mersai ] bonjour; j'ai 4 threads avec identificateur 1,2,3 et 4, qui sont bloqués sur un objet en utilisant obj.wait(). comment faire pour réveillé un thread Développement d'une application de messagerie instantanée et de partage de fichiers [ par nino25 ] bonjour;j'ai un projet et je voudrais que vous m'aidiez sur l'implimentation svp.ce projet entre dans le cadre du développement d'application client/s client serveur avec des threads [ par sparetime ] bonjourje veux réaliser une application serveur entre plusieurs appareils chaque appareil est à la fois client pour émettre des requêtes et serveur po progressbar [ par crashed ] bonjour, j'utilise des threads dans jbuilder et j'aimerai mettre une progressbar afin de suivre le traitement des threads c'est a dire qu'elle se char synchronisation entre threads en java [ par mersai ] je viens de commencé avec les threads en java. et mon problème est comment synchroniser deux threads qui s'attendent mutuellement sur la réception d'u


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 2,324 sec (3)

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