• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

pushOnly 인자를 주는 이유

22.07.19 14:14 작성 조회수 292

0

JobQueue::Push 에서 pushOnly를 추가해야 하는 이유를 잘 모르겠습니다.

JobQueue::Push 함수가 실행되었다는 것은 이미 예약한 시간이 되어서 실행되어도 좋은 Job이 JobQueue에 Push된다는 뜻이 아닌가요?

지금 당장 실행되어도 좋은 Job을 Push 하려는데, 왜 굳이 JobQueue::Execute를 건너뛰고 GlobalQueue::Push를 호출해서 한 타이밍 늦게 Job을 실행시키는지 잘 모르겠습니다.

답변 1

답변을 작성해보세요.

0

기본적으로 당장 실행하는 것도 좋지만,
모두가 공평하게 분배받아서 실행하는 것도 중요합니다.
CPU 코어가 16개라 가정하면 16개가 균등하게 일을 분배 받아야 하는데
JobQueue의 특성상 Job에서 또 Job을 실행하다 보면
한쪽으로 일감이 몰릴 수 있습니다.

일감을 밀어넣기만 하고, 나중에 각자 빼가는 식으로 구현하면
일의 분배가 아무래도 쉬워지기 때문에
보여드린 방식이지만 정책에 대한 선택은 스스로 하시면 됩니다.