Salve a tutti,
sto studiando, come da titolo, la sincronizzazione di blocco. Ma non riesco a capirla, e non trovo esempi calzanti sul web. Ho capito i metodi sincronizzati, ovvero accessibili da un solo thread alla volta, come ho capito lo svantaggio che porta una notifyAll(), a livello di prestazioni. Ma non riesco a impostare il mio programma usando questo costrutto della sincronizzazione su un oggetto. Faccio un esempio. Ci sono 4 thread A, B, C, D. A e B producono oggetti, svegliano D, il thread distributore, e appena hanno prodotto si sospendono. D, svegliato, sveglia a sua volta C e si sospende a sua volta. C consuma, e appena ha fatto notifica D, che a sua volta sveglia A e B. Ecco, con i semafori torna tutto molto tranquillamente, ma se volessi fare una sincro di blocco, per esempio su un array di Object (state[4], ogni stato corrisponde a un thread, e fare wait e notify direttamente su state[i]), come lo posso impostare? scusate ma non avendo un esempio mi riesce difficile immaginarlo e capirlo.
vi ringrazio tutti
gioia