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

    [JAVA] Sincronizzazione

    Buonasera,

    volevo sapere se, in Java, i due seguenti metodi di sincronizzazione sono DEL TUTTO equivalenti

    In un thread, scrivo in una funzione notifyAll(), in un'altra this.wait().

    Tutto funziona alla perfezione, nonostante ci siano 3 thread in stato runnable contemporaneamente..

    Ora, se cambio le due chiamate con le seguenti linee di codice, tutto cambia e il programma si inceppa clamorosamente

    Naturalmente inizializzo nel costruttore l'oggetto methodLock...

    synchronized (methodLocks) {
    methodLocks.notifyAll();
    }



    synchronized (methodLocks) {
    methodLocks.wait();
    }

    Allora, o io non conosco qualcosa della sincronizzazione oppure sbaglio qualcosa di semplicissimo.

    Chi mi sa dire dove toppo?

  2. #2

    Re: [JAVA] Sincronizzazione

    Originariamente inviato da ragnonerodocet
    Naturalmente inizializzo nel costruttore l'oggetto methodLock...
    codice:
    synchronized (methodLocks) {
    				methodLocks.notifyAll();
    			}
    
    
    
    synchronized (methodLocks) {
    				methodLocks.wait();
    			}
    Cosa sono sti syncronized? non ci va il tipo di oggetto da esplicitare per methodLocks? Come fa a complilare così?

  3. #3
    Scusa ma purtroppo non ho seguito la Tua spiegazione...

  4. #4
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Non funziona perchè è il modo errato di utilizzare synchronized.
    I casi sono 2:

    1) Sincronizzare una porzione di codice
    codice:
    synchronized ( this ){
       ....
    ....
    ..
    }
    2) Sincronizzare un'intera funzione
    codice:
    public synchronized static boolean function(){}
    .....
    
    }
    Ecco perchè non ti funziona e per quanto posso capire tu volevi sincronizzare due metodi, quindi il caso 2.
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

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.