java并行流能否在单个线程中处理依赖的任务

java并行流能否在单个线程中处理依赖的任务,java,parallelstream,Java,Parallelstream,假设我们有任务1-8,我们有两个线程。任务1-4分配给线程1,而任务5-8分配给线程2。可以分配一个执行序列,例如,在启动任务2之前完成任务1,任务2将根据任务1的输出执行线程中的任务?否。Java stream parallelism以一种非常特殊的方式运行,这使它能够完全控制,特别是要求它能够决定操作的执行方式和顺序。并行流中的执行顺序不在您的控制之中。如果每个任务必须在下一个任务开始之前完成,则逻辑与,那么,为什么要尝试使用并行流呢?但是是的,当然,你可以做list.stream().pa

假设我们有任务1-8,我们有两个线程。任务1-4分配给线程1,而任务5-8分配给线程2。可以分配一个执行序列,例如,在启动任务2之前完成任务1,任务2将根据任务1的输出执行线程中的任务?

否。Java stream parallelism以一种非常特殊的方式运行,这使它能够完全控制,特别是要求它能够决定操作的执行方式和顺序。

并行流中的执行顺序不在您的控制之中。如果每个任务必须在下一个任务开始之前完成,则逻辑与,那么,为什么要尝试使用并行流呢?但是是的,当然,你可以做
list.stream().parallel().forEachOrdered(…)
。我的意思是,要求
parallel()
,只是要求有序执行是愚蠢的,但不管怎样……您无法控制并行流执行顺序或输入分区。如果你需要控制它,你必须自己进行协调并使用显式线程。但是,是否可以使用倒计时锁存器或类似工具来强制执行它呢?可能不行。Java流如何分解输入,或者它们是否分解输入,由实现选择。您不能保证有两个不同的任务等待闩锁。