Mar*_*nik 14 java multithreading frameworks concurrent-programming
我的问题是,Java中是否存在用于管理和并发运行具有逻辑依赖性的任务的框架.
我的任务如下:我有很多独立的任务(比方说A,B,C,D ......),它们是作为命令实现的(比如命令模式).我想有一种执行器,它将接受所有这些任务并以并行方式执行它们.这些任务可以相互依赖(例如,我无法运行C,在运行A之前),同步或异步.
我还想结合使用自定义启发式方法来影响调度程序的执行,例如,如果任务A和B是CPU密集型的,而C是比较高的内存消耗,那么并行运行A和C是有意义的,而不是运行A和B.
在我自己开始构建这些东西之前(我正在考虑基于java.util.concurrent + annotation的约束/规则),我想知道,如果有人能指出我可以满足我需求的项目.非常感谢提前
我认为没有一个框架可以管理可以满足您要求的任务.您使用命令模式在正确的路径上.您可以查看Akka框架以获得简化的并发模型.Akka基于Actor模型:
actor模型是另一个非常简单的高级并发模型:actor一次不能响应多个消息(消息排队到邮箱中),并且只能通过发送消息而不是共享变量进行通信.只要消息是不可变的数据结构(在Erlang中总是如此,但必须是语言中的约定而无法确保此属性),一切都是线程安全的,不需要任何其他机制.这与Web开发MVC框架中的请求周期非常相似. http://metaphysicaldeveloper.wordpress.com/2010/12/16/high-level-concurrency-with-jruby-and-akka-actors/
Akka是用Scala编写的,但它暴露了干净的Java API.
| 归档时间: |
|
| 查看次数: |
4896 次 |
| 最近记录: |