Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Funzionamento di notifyAll()

    Ciao a tutti.

    E' da poco che sto programmando in Java (Con ECLIPSE Juno) in quanto devo dare l'esame di Programmazione II.

    Ho un programma da fare nel quale ho 3 contatori gestiti da un Server e c'e' un Client che puo' effettuare 4 tipi di richieste diverse:
    INCREMENTACONTATORE
    DECREMENTACONTATORE
    ATTIVACONTATORE
    DISATTIVACONTATORE

    Si capisce dal nome delle richieste quello che fanno.

    Il mio problema e' che se il contatore e' Disattivo io devo mettere in wait() una richiesta di incremento o decremento del contatore.
    Una volta che ci sta una richiesta di Attivacontatore posso poi risvegliare i thread in attesa sul monitor di quell'oggetto.
    Il problema e' che quando io risveglio tutti i thread con NOTIFYALL() mi si risvegliano tutti ma non posso predire l'ordine...E' una cosa normale o e' possibile impostare l'ordine con il quale i thread si risvegliano?

    Grazie mille per le risposte!
    L'impossibile richiede solo più tempo...

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Re: Funzionamento di notifyAll()

    Originariamente inviato da minidiable
    Il problema e' che quando io risveglio tutti i thread con NOTIFYALL() mi si risvegliano tutti ma non posso predire l'ordine...E' una cosa normale o e' possibile impostare l'ordine con il quale i thread si risvegliano?

    Grazie mille per le risposte!
    L'ordine con cui un thread viene risvegliato è impredicibile.
    Dalla documentazione del metodo notify() ( invocato da notifyAll() ):

    Wakes up a single thread that is waiting on this object's monitor. If any threads are waiting on this object, one of them is chosen to be awakened. The choice is arbitrary and occurs at the discretion of the implementation. A thread waits on an object's monitor by calling one of the wait methods.
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Grazie mille sei stato molto utile
    L'impossibile richiede solo più tempo...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.