et j'aime bien quil aura un bon exemple ? et merci
Rechercher
Connexion
Derniers sujets
Meilleurs posteurs
Qui est en ligne ?
Il y a en tout 122 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 122 Invités
Aucun
Le record du nombre d'utilisateurs en ligne est de 122 le Jeu 14 Nov - 13:56
Statistiques
Nos membres ont posté un total de 1292 messages dans 373 sujets
Nous avons 437 membres enregistrés
L'utilisateur enregistré le plus récent est intellection
3 participants
Question à propos de notify() et notifyall()
owenho- Modérateur
- Messages : 115
Points : 5932
Réputation : 4
Date d'inscription : 02/05/2009
Age : 34
Localisation : larache/rabat
- Message n°1
Question à propos de notify() et notifyall()
bonjour tous le monde. jai un question conçernant les methodes notify() et notifyall() ,a quoi sert ces fonctions????
et j'aime bien quil aura un bon exemple ? et merci
et j'aime bien quil aura un bon exemple ? et merci
El Maligno Angelo- Administrateur
- Messages : 373
Points : 6558
Réputation : 8
Date d'inscription : 25/04/2009
Age : 35
Localisation : ErRabat
- Message n°2
Re: Question à propos de notify() et notifyall()
notify et notifyAll sont deux fonction de la classe Object que les méthodes synchronisées peuvent appeler à partir des objet dont elles possèdent le verrou ( l'objet que la fonction synchronisé a interdit l'accés). Donc évidemment on utilise ces deux fonctions dans une fonction synchronisée quand on a plusieurs threads (t1 et t2 par exemple) qui utilise une même ressource (un objet), et t1 fait un traitement préparatoire sur l'objet pour que t2 le complète (affiche un attribut de l'objet après le traitement effectué par t1 par exemple). Pour cela on met en attente le thread t2 (avec la méthode wait())jusqu'à ce que t1 finisse son traitement puis on appelle notifyAll() à partir de l'objet pour prévenir les autres threads en attente que cet objet et disponible.
La méthode notify() prévient un seul thread, mais ce dernier dépends du système d'exploitation, donc on peut pas prévoir ce que va se passer. En général, l'utilisation de notify() n'est pas recommandé.
La méthode notify() prévient un seul thread, mais ce dernier dépends du système d'exploitation, donc on peut pas prévoir ce que va se passer. En général, l'utilisation de notify() n'est pas recommandé.
- Code:
class ListeTab {
private String [] tab = new String [ 50 ] ;
private int index = 0 ;
synchronized void ajoute(String s) {
tab [ index ] = s;
index++;
notifyAll();
System.out.println("notify() exécuté");
}
synchronized String getPremierElementBloquant () {
//tant que la liste est vide
while ( index == 0 ) {
try {
//attente passive
wait();
} catch ( InterruptedException ie ) {
ie.printStackTrace () ;
}
}
return tab [ 0 ] ;
}
}
Houda- Modérateur
- Messages : 9
Points : 5711
Réputation : 1
Date d'inscription : 01/05/2009
Age : 35
- Message n°3
Re: Question à propos de notify() et notifyall()
Il s'agit de faire coopérer des threads.
La méthode notify réveille un seul thread. Si plusieurs threads sont en attente, c'est celui qui a été suspendu le plus longtemps qui est réveillé. Lorque plusieurs threads sont en attente et qu'on veut tous les réveiller, il faut utiliser la méthode notifyAll.
La méthode notify réveille un seul thread. Si plusieurs threads sont en attente, c'est celui qui a été suspendu le plus longtemps qui est réveillé. Lorque plusieurs threads sont en attente et qu'on veut tous les réveiller, il faut utiliser la méthode notifyAll.
owenho- Modérateur
- Messages : 115
Points : 5932
Réputation : 4
Date d'inscription : 02/05/2009
Age : 34
Localisation : larache/rabat
- Message n°4
Re: Question à propos de notify() et notifyall()
merçi mes amies pour votre reponces j'ai bien compris la differences entre ces fonctions :
notify():il permat de reveiller un thread qui est endormi et aussi de debloquer un thread bloqué par wait();
notifyall():la méme fonction que notify() et en plus reveiller tous les threads endormi;
wait():permet de bloqué un threads ,et si une threds appelle wait() seara bloque jusqua l'appelle des 2 methodes notify() ou notifyall().
notify():il permat de reveiller un thread qui est endormi et aussi de debloquer un thread bloqué par wait();
notifyall():la méme fonction que notify() et en plus reveiller tous les threads endormi;
wait():permet de bloqué un threads ,et si une threds appelle wait() seara bloque jusqua l'appelle des 2 methodes notify() ou notifyall().
El Maligno Angelo- Administrateur
- Messages : 373
Points : 6558
Réputation : 8
Date d'inscription : 25/04/2009
Age : 35
Localisation : ErRabat
- Message n°5
Re: Question à propos de notify() et notifyall()
Le tour est joué
owenho- Modérateur
- Messages : 115
Points : 5932
Réputation : 4
Date d'inscription : 02/05/2009
Age : 34
Localisation : larache/rabat
- Message n°6
Re: Question à propos de notify() et notifyall()
non pas encore parceque j'ai beacoups des questions à poser a monsieur maligno adios amigo?
El Maligno Angelo- Administrateur
- Messages : 373
Points : 6558
Réputation : 8
Date d'inscription : 25/04/2009
Age : 35
Localisation : ErRabat
- Message n°7
Re: Question à propos de notify() et notifyall()
J'attends tes questions M. owenho
Jeu 28 Nov - 8:07 par arsenepoutsi
» CCNA version 4 français
Dim 31 Mar - 15:15 par kadhouceeee
» Trés important " Livre exercices en langage C ( claude delannoy) "
Jeu 27 Sep - 16:31 par latifa oustouh
» Ulead VideoStudio 11.5.0157.2 Plus + Crack Collection
Jeu 26 Avr - 9:51 par miloduvi
» Langage IDL(Interface Definition Language)
Mar 27 Sep - 13:02 par Abdelkhalek Bakkari
» demande cours PHP
Jeu 2 Juin - 11:23 par elasriahmed
» exemple page web réaliser avec du html et JavaScript
Lun 30 Mai - 4:05 par ouh.rouchan.zakaria
» cours group2_ 2année 2011
Dim 20 Mar - 15:35 par El Maligno Angelo
» Cours : Infrastructures Réseaux 2003 Server
Mar 15 Fév - 6:55 par jettjackson
» cours officiel de CCNA 2
Mar 18 Jan - 13:53 par agares