Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774

    [java] sincronizzazione su variabile

    ciao a tutti..
    devo scrivere un piccolo programmino in cui ho bisogno di fare delle sincronizzazioni...
    ho quasi finito ma ho anche il cervello praticamente andato e mi sono incartato su una cosa stupida da cui non riesco a muovermi...

    praticamente ho 5 thread e una varibale condivisa, solo uno di questi thread scrive sulla variabile mentre tutti gli altri si limitano a leggere.
    la variabile è una specie di clock, il thread che ci scrive la incerementa ogni volta che esegue una data operazione, mentre gli altri la devono solo leggere per farci dei calcoli....
    secondo voi è necessario che sincronizzi i suddetti thread sulla variabile?

    (secondo me no però ho mille dubbi)
    aiutatemi mi sono ncartato alla grande!!!

    grazie
    citru(llu)s
    :rollo:

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    potresti fare due metodi così:

    codice:
    public synchronized void setVar(int i) {
    var = i;
    }
    
    public synchronized int getVar() {
    return var;
    }
    era questo che volevi?

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #3
    potresti fare due metodi così:
    codice:
    public synchronized void setVar(int i) {
    var = i;
    }
    
    public synchronized int getVar() {
    return var;
    }
    era questo che volevi?
    Si questo è il come farlo,ma lui chiedeva un consiglio su l'opportunità di farlo,io ho letto la sua domanda ed a occhi e croce avrei risposto che la sincro non è necessaria,ma non sono sicuro quindi la cosa interessa pure me.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  4. #4
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da unomichisiada
    Si questo è il come farlo,ma lui chiedeva un consiglio su l'opportunità di farlo,io ho letto la sua domanda ed a occhi e croce avrei risposto che la sincro non è necessaria,ma non sono sicuro quindi la cosa interessa pure me.
    Secondo me bisogna è da evitare che 2 thread entrino nel monitor di uno stesso ogetto, in particolare sarebbe da evitare che mentre uno legge l'altro scrive, quindi io sincronizzerei.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  5. #5
    Secondo me bisogna che evitare che 2 thread entri nel monitor di uno stesso ogetto, in particolare sarebbe da evitare che mentre uno legge l'altro scrive, quindi io sincronizzerei.
    Beh la sincronizzazione comporta un lavoro in più da parte del programma per essere gestita quindi se non è strettamente necessaria secondo me va evitata.Tu faresti così per tuo ragionamento (come me del resto) o sei proprio sicuro che sia necessario?
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  6. #6
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da unomichisiada
    Beh la sincronizzazione comporta un lavoro in più da parte del programma per essere gestita quindi se non è strettamente necessaria secondo me va evitata.Tu faresti così per tuo ragionamento (come me del resto) o sei proprio sicuro che sia necessario?
    Per eliminare ogni dubbio ho dato un occhiata al mio manualozzo, il quale dice che la sincronizzazione va usata per evitare che 2 o più thread intervengano su un dato condiviso contemporaneamente, infine riporta proprio il mio esempio di prima, evitare che uno(o più) legga e l'altro(o più) scriva. Nel caso della variabile potrebbe succedere che 1 thread prenda la variabile e contemporaneamente l'altro la incrementi, se vuoi che questo non accada credo sia l'unica soluzione sincronizzare.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  7. #7
    Mi hai convinto!!!
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.