另一种解决餐饮哲学家的方法(需要一个正确方向的点)[关闭]
-
03-07-2019 - |
题
编程作业我被要求实施餐饮哲学家问题的解决方案。我必须以两种方式这样做:
- 使用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
不隶属于 StackOverflow