对于一项编程任务,我被要求实施解决餐饮哲学家问题的方法。我必须以两种方式这样做:
- 使用 wait() 和 notifyAll() 机制
- 使用 Java API 中提供的现有并发数据结构
我已经完成了第一个实现。我的教授在第二步谈论哪种并发数据结构?我不记得她提过什么。我不需要任何源代码,只需要一个指向正确方向的指针。
对于一项编程任务,我被要求实施解决餐饮哲学家问题的方法。我必须以两种方式这样做:
我已经完成了第一个实现。我的教授在第二步谈论哪种并发数据结构?我不记得她提过什么。我不需要任何源代码,只需要一个指向正确方向的指针。
您可能想查看java.util.concurrent Javadoc 页面以获得一些想法。这些不是唯一的并发数据结构(一些 java.util 数据结构也有内置的并发支持),但这是一个很好的起点。
Collections.synchronizedList
不是我所说的“现有并发数据结构”——它是不支持并发的数据结构的包装器。
也许她的意思是在同步包装器中包装 Java 集合,例如使用Collections.synchronizedList()
,或者在 中始终同步的数据结构java.util.concurrent
,例如CopyOnWriteArrayList
.
不是真正的数据结构......但在你可能需要的附近http://java.sun.com/javase/6/docs/api/java/util/concurrent/Semaphore.html?
Java API 中有一个并发库。
它有一些收藏
查看 java.util.concurrent 包
http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html