我想学习java.util.concurrent
库的功能(因此对于我来说,所有旧版本或非特定于Java的版本都是不可用的。)
我了解并发和多线程的基础知识和理论,我不寻找理论。
我现在正在阅读Java Concurrency in Practice。说实话,我对这本书中的例子非常不满。它们太短而简单,对我来说是“假的”。我正在寻找一些不错的Java 5+并发示例和解释。
有类似的东西吗?我很害怕如果我不尽快使用我在JCIP学到的东西,我会忘记它:/
答案 0 :(得分:2)
为什么不直接搜索GitHub(here is an example)?
我没有隶属关系,顺便说一下。但是您可以在描述中找到使用“java concurrency”的项目,或者在代码中引用库。
另一个选择是考虑您最喜欢的Java框架。例如Tomcat或Quartz(虽然我不知道他们是否使用Java 5并发本身)。这样的框架将是很好的例子,因为它是现实世界的东西。
答案 1 :(得分:1)
绝对可以通过申请来学习。例如,您可以创建自己的实时在线股票交易系统甚至是拍卖系统。这样的东西将彻底测试你的概念。或者您可以参与专注于这些类型的应用程序的开源项目..
答案 2 :(得分:1)
我不同意您对Java Concurrency in Practice的看法,但是,您可能还想看看M. Herlihy和N. Shavait的“多处理器编程的艺术”。
我建议使用这两本书来更多地了解并发的基本原则;而不是仅仅浏览一些代码片段。
答案 3 :(得分:0)
考虑到我们正在谈论“共享状态并发”
看看这两个框架的实现:
他们非常好地使用了缓存行和环缓冲区的概念来实现极高的并发性。当然,他们依赖于并发工具中的原子类加上他们自己的基于环形缓冲区的概念。
Google Guava Concurrent package:
他们装饰了Futures和Executor接口,以提供真实世界并发事件驱动的原语。它们的框架底层是对java并发类和设计模式的良好理解。
共享状态并发不是唯一的风格,您可能还想检查基于Actor的框架,例如AKKA正在做。这种并发编程称为消息传递并发。