如何使用Java 8的Fork/Join框架並行化循環。隨便我沒有使用多線程。我在SO中讀了很多問題。現在我無法在Java 8中實現並行處理列表。任何人都可以幫助我?如何使用Java 8的Fork/Join框架並行化循環
我曾嘗試過類似於this link的東西。
routes.stream().parallel().forEach(this::doSomething);
情景就像基於路由列表名單,我需要devide任務並執行我需要一個像foreach循環的insted的我想基於陣列尺寸的並行執行。
我的問題是在處理updateSchedules
服務時,它花費了太多時間。這就是我想在這裏實現線程概念的原因。 scheduleService.updateSchedules(originId, destinationId,req.getJourneyDate());
for (Availabilities ar : routes) {
try {
log.info("Starting for bus" + ar);
Bus bus = new Bus();
// Get schedule list
BitlaSchedules schedule = scheduleRepo
.findByOriginIdAndDestinationIdAndScheduleIdAndTravelIdAndRouteId(originId,
destinationId, ar.getScheduleId(), ar.getTravelId(), ar.getRouteId());
if (schedule == null) {
scheduleService.updateSchedules(originId, destinationId,req.getJourneyDate());
schedule = scheduleRepo
.findByOriginIdAndDestinationIdAndScheduleIdAndTravelIdAndRouteId(originId,
destinationId, ar.getScheduleId(), ar.getTravelId(), ar.getRouteId());
}
} catch(Exception e) {
log.error(e.getMessage());
}
}
我想用一個執行器會更合適。你是如何得出結論的?Fork/Join是你需要的嗎? – Fildor
請編輯您的問題,以表明您嘗試了什麼(不僅僅是「某些事情來自...」)以及您遇到了什麼具體問題。如果這是一個編譯器錯誤,請複製/粘貼錯誤。如果是運行時錯誤,請執行相同的操作。如果這是意外的行爲,請描述它。 – slim
請參閱:http://stackoverflow.com/help/mcve – slim