인프런 커뮤니티 질문&답변

akrhwkwk님의 프로필 이미지

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

JobTimer

pushOnly 인자를 주는 이유

22.07.19 14:14 작성

·

347

0

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

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

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

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

2022. 07. 30. 23:36

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

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

akrhwkwk님의 프로필 이미지

작성한 질문수

질문하기