【发布时间】:2015-10-16 02:59:17
【问题描述】:
我在多线程环境中经历不同的并发模型(http://tutorials.jenkov.com/java-concurrency/concurrency-models.html)
文章重点介绍了三种并发模型。
-
并行工作者
第一个并发模型就是我所说的并行工作者模型。新的工作分配给不同的工人。
-
装配线
工人像工厂流水线上的工人一样组织起来。每个工人只完成全部工作的一部分。当该部分完成后,工人将工作转发给下一个工人。
每个工作线程都在自己的线程中运行,并且不与其他工作线程共享任何状态。这有时也称为无共享并发模型。
-
功能并行
函数并行的基本思想是使用函数调用来实现程序。函数可以被视为相互发送消息的“代理”或“参与者”,就像在流水线并发模型(AKA 反应式或事件驱动系统)中一样。当一个函数调用另一个函数时,这类似于发送消息。
现在我想为这三个概念映射 java API 支持
Parallel Workers:是ExecutorService,ThreadPoolExecutor,CountDownLatch API?
Assembly Line:将事件发送到 JMS 等消息传递系统并使用 Queues & Topics 的消息传递概念。
功能并行:ForkJoinPool 在某种程度上 & java 8 流。与流相比,ForkJoin 池更容易理解。
我在映射这些并发模型时是否正确?如果不是请纠正我。
【问题讨论】:
标签: java multithreading executorservice countdownlatch forkjoinpool