2015-01-07 1 views
-2

무엇 현실 세계 시나리오 예은 Java 7/8에서 스레드 풀 실행 프로그램 대신 포크/조인 실행 프로그램을 사용하는 것을 정당화합니까?포크/결합 실행 프로그램이 Java의 스레드 풀 실행 프로그램보다 선호되는시기는 언제입니까?

+1

왜 -1입니까? 사람들 -1이 왜 당신에게 말하지 않을 때 그것은 위대하지 않습니다. – Wojtek

+2

동의하고, 이것은 "너무 광범위"하지 않습니다 (중복 일지라도). 포크 - 조인 풀 (fork-join pool)은 작업을 도둑질하는 기능을 가지고 있습니다 : 실행중인 태스크가'join()'을 호출 할 때 스레드가 다른 태스크에 포기할 가능성이 있습니다 * 병렬 병합 정렬과 같은 응용 프로그램에 유용합니다 : 서비스를 사용하면 하위 정렬 작업을 시작할 수 있지만 자식 작업을 기다리는 동안 부모 태스크는 여전히 스레드를 보유합니다. 결과적으로 스레드가 부족하게됩니다. 포크 - 조인 풀은 비교하여 잠재적으로 상위 작업의 스레드를 가져 와서 하위 작업을 실행합니다. – kdgregory

답변

1

작은 조각으로 재귀 적으로 분할 할 수있는 작업에는 fork-join 프레임 워크를 사용해야합니다. 간단한 스레드 풀을 사용하여이 작업을 수행 할 수 있지만 더 많은 코드를 작성해야합니다.

웹에서 "divide and conquer algorithm"을 검색하면 많은 예제가 있습니다.

관련 문제