Une autre façon de résoudre le philosophe de salle à manger (besoin d'un point dans la bonne direction) [fermé]

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

Question

pour un travail de programmation, on m'a demandé de mettre en œuvre une solution au problème de Dining Philosopher. Je dois le faire de deux manières:

  1. Utiliser les mécanismes wait () et notifyAll ()
  2. Utilisation d'une structure de données simultanée existante fournie dans l'API Java

J'ai déjà terminé la première mise en œuvre. De quelle structure de données simultanée mon professeur parle-t-il pour la deuxième étape? Je ne me souviens pas qu'elle ait mentionné quoi que ce soit. Je n'ai besoin d'aucun code source, juste d'un pointeur dans la bonne direction.

Était-ce utile?

La solution

Vous voudrez peut-être consulter java.util.concurrent page Javadoc pour obtenir des idées. Ce ne sont pas les seules structures de données simultanées (certaines des structures de données java.util ont également une prise en charge intégrée de la simultanéité), mais il s'agit d'un bon point de départ.

Collections.synchronizedList n'est pas ce que j'appellerais "une structure de données simultanée existante" " - C’est un wrapper pour les structures de données qui ne supportent pas la simultanéité.

Autres conseils

Peut-être voulait-elle dire envelopper les collections Java dans des wrappers synchronisés, par exemple. à l'aide de Collections.synchronizedList () , ou des structures de données toujours synchronisées dans java.util.concurrent , par exemple. CopyOnWriteArrayList .

Pas vraiment une structure de données ... mais au voisinage de ce dont vous pourriez avoir besoin http://java.sun.com/javase/6/docs/api/java/util/concurrent/Semaphore.html ?

Il existe une bibliothèque simultanée dans l'API Java.

Il a des collections

Regardez le package java.util.concurrent

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top