Java 8의 Fork/Join 프레임 워크로 루프를 병렬화하는 방법. 정확하게 여러 스레딩에서 작동하지 않았습니다. 나는 많은 질문을 읽었습니다. 이제 Java 8에서 병렬 처리를 구현할 수 없습니다. 어느 누구도 나를 도울 수 있습니까?Java 8의 Fork/Join 프레임 워크로 루프를 병렬화하는 방법
나는 같은 것을 시도했다 this link.
routes.stream().parallel().forEach(this::doSomething);
시나리오 경로의 목록을 기반으로 목록처럼 나는 작업으로 나눔과 내가 배열의 크기에 따라 병렬 실행을 원하는 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());
}
}
나는 Executor를 사용하는 것이 더 적절하다고 생각합니다. 결론에 어떻게 왔습니까? Fork/Join은 필요한 것입니다. – Fildor
"some things from ..."뿐만 아니라 어떤 시도를했는지, 그리고 어떤 문제가 발생했는지 나타 내기 위해 질문을 편집하십시오. 컴파일러 오류 인 경우 오류를 복사/붙여 넣기하십시오. 런타임 오류 인 경우 동일한 작업을 수행하십시오. 예상치 못한 동작 인 경우 설명하십시오. – slim
참조 : http://stackoverflow.com/help/mcve – slim