JobQueue 사용에 대한 질문
우선 저는 단순히 Lock 만 사용하면 무수한 경합으로 인해 성능적으로 손해를 볼 수 있어 Job Queue 를 사용하는 것으로 이해를 했습니다.
그래서 이것저것 연습하면서 Job Queue 를 계속 사용하고 있는데 도중에 몇몇 의문이 생기어 질문을 드리게 되었습니다.
Job Queue 를 사용하다보면 Job Queue 내에 또 다른 Job Queue 를 사용해야하는 상황이 발생하는데 이 부분은 문제가 되지 않을까요?
아래는 예시 코드입니다.
public void Function()
{
MatchingManager.Instance.Push(() =>
{
...
User.Party.Push(() =>
{
...
});
});
}
Lock 처럼 사용하면 된다 라는 생각은 옳은 것인가요? 아니면 Lock 과는 달리 Job Queue 사용 시 주의 할 부분이 있을까요?
항상 양질의 강의를 제공해주셔서 감사드립니다.
답변 1
2
예리한 질문입니다.
실제로 그래서 적당한 정책을 마련해야 하는데,
예전에 일하던 프로젝트에서는
- 이미 JobQueue를 실행중인 경우, GlobalJobQueue에 예약만 하고 실행을 미루고
- 여유되는 쓰레드들이 GlobalJobQueue에서 일감을 꺼내가는
~등의 방식을 이용하곤 합니다.
물론 이런 세부 처리가 부담스럽다면
JobQueue를 연속해서 사용하지 않는 쪽으로 코드를 만들어야 합니다.
TLS 질문드립니다.
0
56
2
SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.
0
57
2
Unity Span
0
82
2
XML, Dll 차이점
0
111
2
Session 질문입니다
0
84
1
Write Read 커서 키워드
0
79
1
더미 클라이언트 수에 따른 OnDisconnect 발생
0
75
2
네트워크 Send 전담 스레드 배치
0
100
2
UnhandledException 으로 서버 터지는 경우
0
88
2
컨텐츠 단, 엔진 단
0
108
1
질문 있습니다
0
78
2
C# 게임서버 3D MMORPG
0
153
2
유니티6 버전
0
100
2
receive하는 부분과 send하는 부분의 차이
0
135
2
커서의 위치의 중요성
0
105
2
C++ 전혀 모르는데 C# 서버
0
171
2
강의에 질문이 있습니다
0
89
2
멀티스레드 이해도 질문
0
98
1
500 vs 500
0
131
3
OnAcceptHandler 액션 함수
0
64
1
이 정도 서버의 객관적인 수준이 궁금합니다.
0
194
2
36. Serialization #3 에서 string (name) 코드 수정 질문
0
84
2
외부 컴퓨터와의 통신 방법이 궁금합니다
0
107
1
스핀락 질문.
0
111
2





