Un altro modo per risolvere il filosofo da pranzo (serve un punto nella giusta direzione) [chiuso]

StackOverflow https://stackoverflow.com/questions/604667

Domanda

per un incarico di programmazione mi è stato chiesto di implementare una soluzione al problema del filosofo da pranzo. Devo farlo in due modi:

  1. Utilizza il meccanismo wait () e notifyAll ()
  2. Utilizzo di una struttura di dati simultanei esistente fornita nell'API Java

Ho già completato la prima implementazione. Di quale struttura dati simultanea sta parlando il mio professore per il secondo passaggio? Non ricordo che abbia menzionato nulla. Non ho bisogno di alcun codice sorgente, solo un puntatore nella giusta direzione.

È stato utile?

Soluzione

Potresti voler guardare java.util.concurrent pagina Javadoc per avere alcune idee. Queste non sono le uniche strutture di dati simultanee (alcune delle strutture di dati java.util hanno anche il supporto della concorrenza integrato) ma questo è un buon punto di partenza.

Collections.synchronizedList non è ciò che definirei "una struttura di dati simultanea esistente" - è un wrapper per strutture dati che non supportano la concorrenza.

Altri suggerimenti

Forse intendeva avvolgere le raccolte Java in wrapper sincronizzati, ad es. utilizzando Collections.synchronizedList () o le strutture di dati sempre sincronizzate in java.util.concurrent , ad es. CopyOnWriteArrayList .

Non proprio una struttura di dati ... ma nelle vicinanze di ciò di cui potresti aver bisogno http://java.sun.com/javase/6/docs/api/java/util/concurrent/Semaphore.html ?

Esiste una libreria simultanea nell'API Java.

Ha alcune raccolte

Guarda il pacchetto java.util.concurrent

http: / /java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top