2017-12-12 19 views
0

코어에서 스레드를 항상 가장 낮은 우선 순위로 실행할 수있는 방법은 무엇입니까? sched_getcpu()을 사용하여 스레드에 특정한 코어를 할당 할 수 있지만, 우선 순위가 낮은 실행을 어떻게 구현할 수 있습니까?우선 순위가 가장 낮은 코어에서 스레드를 실행하십시오.

+0

이 함수는 스레드가 실행되고있는 CPU의 번호를 반환합니다. 설정하지 않았습니다. OS가 코드가 실행되는 위치를 결정합니다. – Ron

+0

SMP (Symmetric Multiprocessor) 환경에서 모든 코어가 동일하고 병렬로 실행되므로 무언가가 누락 되었습니까? 궁극적으로 각 코어에서 실행되는 것이 OS에 의해 우선 순위 지정되어야하지만 우선 순위 개념이 없습니다. – doron

+0

당신은 그걸 통제 할 권한이 없습니다. 운영 체제 프로세스 스케줄러가이를 처리하고 있습니다. 그러나 Linux에서는 스케줄러의 매개 변수를 조정할 수 있습니다. https://www.ibm.com/support/knowledgecenter/en/linuxonibm/liaai.saptuning/saptuningadjust.htm –

답변

3

당신은 std::thread와 함께 할 수 없어, 아직 당신이 native_handle을 획득하고 pthread에 핸들 core affinitypriority을 (예를 보면)을 설정할 수 있습니다.

편집 : 이것은 Linux 용이며, Windows에서는 다른 핸들을 얻습니다.