inflearn logo
강의

Course

Instructor

[C# and Unity MMORPG Game Development Series] Part 4: Game Server

Thread creation

17분 40초경 질문

437

kk083340567

20 asked

0

안녕하세요 강사님!

다름이 아니라 밑에 분 질문중에 똑같은 질문이 있어 그걸 보고 해결하려고 햇는데 해결이 안되어 질문올립니다.

 

https://inflearn.com/questions/79914

제가 참고한 게시물이구요.

 

SetMinThreads와 SetMaxThreads 다 true로 뜨는 걸 확인했는데도 for문에서  i < 4로하면 작동하지 않고 i < 3으로해야 작동이 됩니다... 또 답글로 남겨주신분이 while문을 안써서 그럴 수 있다고 하셨는데 while문도 다 정확히 들어가있는데 작동하지 않아요. 원인을 알 수 있을까요?

 

+) 로그로 스레드 갯수 확인해봤는데 스레드 갯수는 정확히 5개 생성되었는데 하나가 놀고있네요.. 원인이 뭘까요 ㅠㅠ

network unity C#

Answer 2

0

kk083340567

댓글 이렇게 남겨두면 될까요??ㅠ

0

Rookiss

위 내용만으로는 알 수가 없습니다.
기본적으로 전체 코드 스샷을 남겨주셔야 정확한 원인이 판별됩니다.
그리고 for i < 4로 하면 작동하지 않는다는게 "Hello Thread"가 아예 출력되지 않는다는 것일까요?

0

kk083340567

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading;

namespace ServerCore

{

class Program

{

static void MainThread(object state) // 쓰레드풀을 사용하기 위해서 매개변수로 object를 하나 받아줘야 함 (함수내에서 원하면 해당 매개변수를 캐스팅해서 사용, 꼭 사용할 필요는 없음)

{

for (int i = 0; i < 5; ++i)

{

Console.WriteLine("Hello Thread!");

}

}

// 메인직원

static void Main(string[] args)

{

// 쓰레드풀이 먹통이 되는 상황

ThreadPool.SetMinThreads(1, 1); // 첫번째 매개변수는 최소 일반 스레드풀 갯수 설정, 두번째 매개변수는 아직 몰라도 되는 부분임 (최소 인풋아웃풋(네트워크 이벤트를 기다린다거나)하는 스레드 갯수 설정)

ThreadPool.SetMaxThreads(5, 5); // 최대 갯수 설정하는 메소드 (5개를 누군가가 다 물고있으면 그 다음요청은 실행되지 않음)

for (int i = 0; i < 4; ++i)

{

ThreadPool.QueueUserWorkItem((obj) => { while (true) { } }); // obj를 받아서 무한루프해주세요

}

// 쓰레드풀에게 단기일감 주기 (일감을 받고 대기상태)

ThreadPool.QueueUserWorkItem(MainThread);

while (true)

{

}

}

}

}

0

kk083340567

"Hello Thread"가 아예 출력되지 않는다는 것 맞습니다 !

0

kk083340567

TLS 질문드립니다.

0

36

2

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

0

41

2

Unity Span

0

67

2

XML, Dll 차이점

0

99

2

Session 질문입니다

0

75

1

Write Read 커서 키워드

0

69

1

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

0

65

2

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

0

94

2

UnhandledException 으로 서버 터지는 경우

0

82

2

컨텐츠 단, 엔진 단

0

100

1

질문 있습니다

0

73

2

C# 게임서버 3D MMORPG

0

141

2

유니티6 버전

0

94

2

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

0

128

2

커서의 위치의 중요성

0

99

2

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

0

164

2

강의에 질문이 있습니다

0

83

2

멀티스레드 이해도 질문

0

90

1

500 vs 500

0

122

3

OnAcceptHandler 액션 함수

0

57

1

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

0

185

2

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

0

78

2

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

0

100

1

스핀락 질문.

0

104

2