2014-01-28 6 views
0

병렬 프로그램은 서로 다른 코드 블록에서 서로 다른 수준의 병렬 처리 (예 : 스레드 수)가 필요하므로 pthread의 스레드 수를 동적으로 변경하여 항상 최적의 병렬 처리를 유지할 수있는 방법이 있습니까? 프로그램 실행 중?pthread에서 스레드 수를 동적으로 변경

불필요한 스레드를 잠자기 상태로 만들 수 있지만 문제가 발생합니다. 첫째, 다양한 수의 스레드를 동기화하려면 장애물을 변경해야합니다. 둘째, 일부 병렬 프로그램은 초기화하는 동안 개별 스레드에 데이터를 할당합니다. 동적 스레드 번호로 데이터 배포도 변경해야합니다.

의견이나 제안이 있으십니까? 감사합니다.

답변

0

제가 생각할 수있는 최선의 방법은 항상 풀 스레드 또는 앱 수명 스레드를 사용하는 것입니다.

응용 프로그램의 수명 동안 실행해야하는 작업은 한 번 시작되며 종료되지 않습니다.

다른 모든 작업은 충분히 큰 스레드 폴링에 대기합니다. 따라서 코어가없는 동안 작업이 대기열에 남지 않을 가능성이 있습니다.

관련 문제