inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

컴파일러 최적화

안녕하세요 선생님 Task 에 대해서 또다시 질문드립니다

401

유영재

작성한 질문수 18

1

Task t = new Task(ThreadMain);

t.Start(); // 쓰레드 풀에 있던 쓰레드를

이용해서 일감을 받아서 실행 

Thread.Sleep(1000);// 메인 쓰레드가 잠든다. 

위 코드는 선생님에서 수업시간에 하셧던거 모르는 부분 발췌

한 것입니다.

Q1. 여기서 쓰레드 풀을 따로 생성하지 않으셨는데 설명

하실때 쓰레드 풀에 있던 쓰레드를 이용해서 일감을 받아서 

실행 한다고 하셨습니다.

-> 현재 코드에는 쓰레드풀을 생성하시지 않으셨고

(앞전 수업처럼 쓰레드풀 MIN,MAX 함수 써서 쓰레드 풀의

쓰레드는 최소 몇개 최대 몇개 설정 하심)

그냥 Task만 사용하셨습니다. 

그럼 디폴트 쓰레드 풀이 내장되어 있는 것입니까?

디폴트 쓰레드 풀이 있다고 한다면 그 쓰레드 풀은 쓰레드가

몇개가 대기중입니까?

Q2. 그 다음 줄에 메인 쓰레드가 잠드는 즉, TASK (일감)

-> ThreadMain함수를 실행하는 일감

을 맡은 쓰레드가 해당 함수를 실행할 시간을 벌기 위해서

Thread.Sleep(1000); 으로 메인 쓰레드를 재운다 라고

하셨는데

뒷 강의 에서도 Thread.Sleep과 yeild 이런 것이 나오는데

이놈들의 주체는 누구입니까?

메인 함수를 맡은 쓰레드를 메인 쓰레드라고 부르시는 것 같은

데, Main() 함수 내부에서 Thread.sleep을 사용하면

main함수 내부에서 사용했으니까 메인 쓰레드를 

재우는 것인가요????

어제 멀티 쓰레드 부분 쪽은 완강하고 네플 나가기 전에 

복습 하고 있는데 몇 개 헷갈린 부분이 있어서 질문드립니다

즐거운 설날 되세요 ~!!감사합니다 선생님

unity C# network

답변 2

1

Rookiss

Q1.
그럼 디폴트 쓰레드 풀이 내장되어 있는 것입니까?
-> C# .NET 프레임워크에서는 그렇습니다.  

디폴트 쓰레드 풀이 있다고 한다면 그 쓰레드 풀은 쓰레드가 몇개가 대기중입니까?
-> 그건 .NET 프레임워크마다 상이하기 때문에 크게 중요하지 않습니다.
(확인하려면 ThreadPool.어느함수~를 이용해서 확인은 가능하겠지만..)

Q2. 

Main() 함수 내부에서 Thread.sleep을 사용하면
main함수 내부에서 사용했으니까 메인 쓰레드를 재우는 것인가요????

-> 맞습니다!

부연설명을 드리자면, 원래 운영체제 커널 코드가 실행되면서
프로세스(실행중인 프로그램)한테 적절히 실행시간(timeslice)를 분배해줍니다.
가령 우리 서버가 0.3초 동안 실행할 권한을 받았다면 그 시간 동안 실행한 후
실행권을 반납하고 다른 프로세스가 실행되어야 하는데요.
Sleep, Yield 등을 사용하면 자기한테 할당받은 정당한 실행시간을 포기하고
커널 모드로 돌아가는 것입니다.
(누군가가 외부에서 와서 잠재우는 느낌은 아니고, 거꾸로 내가 수면에 빠지면서 종료되는..)

0

KIYOMIN

감사합니다

TLS 질문드립니다.

0

38

2

SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.

0

44

2

Unity Span

0

69

2

XML, Dll 차이점

0

101

2

Session 질문입니다

0

78

1

Write Read 커서 키워드

0

72

1

더미 클라이언트 수에 따른 OnDisconnect 발생

0

68

2

네트워크 Send 전담 스레드 배치

0

97

2

UnhandledException 으로 서버 터지는 경우

0

84

2

컨텐츠 단, 엔진 단

0

103

1

질문 있습니다

0

76

2

C# 게임서버 3D MMORPG

0

143

2

유니티6 버전

0

96

2

receive하는 부분과 send하는 부분의 차이

0

131

2

커서의 위치의 중요성

0

102

2

C++ 전혀 모르는데 C# 서버

0

168

2

강의에 질문이 있습니다

0

85

2

멀티스레드 이해도 질문

0

94

1

500 vs 500

0

125

3

OnAcceptHandler 액션 함수

0

60

1

이 정도 서버의 객관적인 수준이 궁금합니다.

0

187

2

36. Serialization #3 에서 string (name) 코드 수정 질문

0

81

2

외부 컴퓨터와의 통신 방법이 궁금합니다

0

104

1

스핀락 질문.

0

107

2