2013-06-15 5 views
0

pthread_cond_broadcast()를 사용하여 동일한 조건을 기다리고있는 모든 스레드를 깨우고 싶습니다.pthread_cond_broadcast로 병렬 실행 하시겠습니까?

그러나 동일한 뮤텍스를 공유해야하기 때문에 실제로는 병렬로 실행할 수없는 것처럼 보입니다.

맞습니까? 아니면 그렇게 할 방법이 있습니까?

미리 감사드립니다.

+0

모든 항목을 병렬로 실행하도록 변환 할 수있는 것은 아닙니다. 언급 할 가치가있는 프로그램에는 항상 순차적으로 실행해야하는 부분 (예 : 공통 리소스 공유)이 있습니다. 따라서 우리는 일반적으로 동시에 실행될 수있는 부품과 부품에 대해 이야기합니다. 그렇지 않을 수도 있습니다. "동일한 조건을 기다리고있는"것이 있다면 아마 그렇습니다. – SChepurin

답변

2

각 스레드는 잠에서 깨어 나면 잠금 장치를 가져와야하지만, 바로 다음 작업이 병렬로 진행될 수 있다면 잠금을 해제 할 수있는 가장 빠른 시점에 잠금 장치를 해제하십시오.

+0

감사합니다. 동일한 조건 변수에 동일한 잠금을 공유하지 않는 방법이 있기를 바랬습니다. – Hei