Java에서 세마포어를 사용하여 배열을 정렬하는 작업이 있습니다. 이 작업은 매우 쉽고 몇 분 안에 끝내기도하지만 마지막 부분 병합을 위해 해결했습니다.세마포어를 사용하여 배열 정렬
우리의 임무는 주어진 배열을 두 개로 나누고, 세마포어를 사용하여 동시에 파트를 정렬 한 다음 세마포어를 사용하여 다시 병합하는 것이 었습니다.
제 질문은 마지막 배열을 채우는 동안 하나 이상의 스레드를 사용하여 병합하는 목적은 무엇입니까? 각 요소는 한 번에 배열에 요소를 밀어 넣을 수 있기 때문에 항상 서로 기다려야합니다.
아니면 뭔가 빠졌습니까? 감사합니다. .
정렬 스레드가 작업을 마친 후에는 고유 한 병합 스레드를 깨우기 위해 세마포어를 사용해야 할 수도 있습니다. –
두 개 이상의 스레드가 동시에 작동 할 수 있지만 가장 느린 스레드를 기다려야 할 수도 있지만 순차적으로 모든 작업을 빠르게 처리해야합니다. – tuergeist
@ tuergeist [숙제 표가 삭제되어 더 이상 사용되지 않아야 함] (http://meta.stackexchange.com/q/147100). – Gilles