首页 > 解决方案 > 如何为列表中的每个元素同时运行一个方法

问题描述

我想在下面calculation()同时调用calculateKalmanValues()“movingBeacons”列表中的每个元素以减少处理时间。我认为javastream.parallel()是理想的解决方案。

public void calculation(){
           // do some think
}

// 这是我调用的方法calculation() //对于movingBeacons列表中的每个元素同时应该调用计算方法

public void calculateKalmanValues()  {
       List<String> movingBeacons=incomingBtRssiRepository.movingBeacons();

       movingBeacons.forEach.parallel()
}

通过使用 java stream.parallel() 或多线程。

标签: javajava-stream

解决方案


您可以尝试使用并行流:

List<String> movingBeacons = incomingBtRssiRepository.movingBeacons();
movingBeacons.parallelStream()
    .forEach(s -> s.calculation());

但请注意,并行流可能并不总是加速串行操作。有关警告,请参阅文档


推荐阅读