Salut!
Question débile mais question quand même j’aimerai savoir à quoi ça sert de mettre un thread en attente avec wait() et de le reveiller apres. Me renvoyer pas vers la doc please j’en ai déjà lu pas mal.
je m’explique sur un exemple
vous avez une classe ressource, une classe lecteur et une classe ecrivain, un lecteur lit la ressource, un ecrivain ecrit la ressource mais ils ne peuvent pas le faire tous les deux en meme temps!
j’ai donc entre autre ça comme méthode
public synchronized void requeteEcriture(){
try{
while(unLecteurActif) {
wait();
}
unEcrivainActif = true;
}catch (InterruptedException e){}
}
public void run() {
try {
cptE.requeteEcriture();
// on fait l’ecriture
...
En gros dans le run de la classe ecrivain, il demande d’abord à la ressource si il y a un lecteur qui lit la ressource ou pas. Et tant qu un lecteur est actif on attent et on ‘endort’ le thread.
j’aimerais savoir à quoi cela sert d’endormir le thread étant donné que même sans le wait tant qu’il y aura un lecteur actif on restera dans la boucle et le thread ne pourra pas continuer de s’executer ?? j’ai bien dans l’idée que en endormant le thread on libere un peu le processeur, mais bon pour ce que je fais c’est dérisoire. quelqu’un peut m’expliquer ? car j’ai l’impression que j’ai raté une partie du cours :lol:
de plus je viens de tester avec le wait et c’est bizarre il ne fait pas la suite des instruction apres le wait je croyais que le wait bloquait le thread pas la boucle! :??:
merci
EDIT : pb résolu