inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

멀티쓰레드 개론

안녕하세요!! 쓰레드와 프로세스의 차이

422

LEETO

작성한 질문수 21

2

안녕하세요. 좋은 강의 감사합니다!!

제가 프로세스와 쓰레드, 멀티프로세스, 멀티쓰레드를 정확히 구분짓지 못하는거 같아 이렇게 질문으로 남깁니다.

1. 제가 이해한 대로는 프로세스가 하나의 프로그램이고, 그 프로그램을 여러개 실행하면 멀티프로세스, 그리고 하나의 프로그램 안에 실행 역할을 해주는 쓰레드가 여러개가 있다면 멀티쓰레드라고 이해했습니다. 혹시 이게 맞을까요??

2. 임계영역이라는게 서로 다른 쓰레드 또는 프로세스가 자원 공유하는걸 접근하는건데 분명 프로세스는 아예 다른 프로그램으로 각자 다른 메모리를 가지고 있는데 공유되는 자원이 있다는게 잘 이해가 안갑니다.. 

그리고 컨테스 스위층은 서로 다른 프로세스에서 다른 프로세스를 실행할때 일어나는건가요?? 아니면 쓰레드에서 다른 쓰레드로 넘어갈때 일어나는건가요??.. 

분명 컨테스트 스위층가 프로세스에서 프로세스로 이동하는것보다 공유하는 메모리가 있기 때문에 쓰레드에서 쓰레드로 이동하는게 더 빠르다고 들었습니다. 이 말도 머리에서 잘 그려지지 않네요... 

이렇게 독립적으로만 개념을 이해하고 있고 이를  큰 그림으로 이어서 이해를 할려고하면 앞뒤가 안맞아서 이렇게 질문남깁니다.!!

network C# unity

답변 1

3

Rookiss

1. 제가 이해한 대로는 프로세스가 하나의 프로그램이고, 그 프로그램을 여러개 실행하면 멀티프로세스, 그리고 하나의 프로그램 안에 실행 역할을 해주는 쓰레드가 여러개가 있다면 멀티쓰레드라고 이해했습니다. 혹시 이게 맞을까요??

네 맞습니다. 프로세스=프로그램이고, 그 프로그램의 '영혼' 같은 존재가 쓰레드입니다.

2. 임계영역이라는게 서로 다른 쓰레드 또는 프로세스가 자원 공유하는걸 접근하는건데 분명 프로세스는 아예 다른 프로그램으로 각자 다른 메모리를 가지고 있는데 공유되는 자원이 있다는게 잘 이해가 안갑니다.. 

각자 다른 프로세스는 아예 각자 다른 메모리를 갖고 있지만,
1개의 프로세스에서 멀티쓰레드 환경으로 돌아가면
스택은 쓰레드끼리 독립적이지만 데이터, 힙 영역은 공용으로 사용합니다.

그리고 컨테스 스위층은 서로 다른 프로세스에서 다른 프로세스를 실행할때 일어나는건가요?? 아니면 쓰레드에서 다른 쓰레드로 넘어갈때 일어나는건가요??.. 

기본적으로 쓰레드 -> 다른 쓰레드로 넘어갈 때 일어납니다. (하이퍼쓰레드 등 아니라 가정)
그러나 프로세스 -> 다른 프로세스로 넘어가도 결국 쓰레드가 바뀌는거니,
Context Switching이 일어나는건 동일합니다.

C#에서의 RAII

0

66

3

TLS 질문드립니다.

0

79

2

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

0

74

2

Unity Span

0

97

2

XML, Dll 차이점

0

134

2

Session 질문입니다

0

96

1

Write Read 커서 키워드

0

88

1

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

0

85

2

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

0

112

2

UnhandledException 으로 서버 터지는 경우

0

102

2

컨텐츠 단, 엔진 단

0

118

1

질문 있습니다

0

93

2

C# 게임서버 3D MMORPG

0

159

2

유니티6 버전

0

106

2

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

0

154

2

커서의 위치의 중요성

0

110

2

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

0

176

2

강의에 질문이 있습니다

0

92

2

멀티스레드 이해도 질문

0

107

1

500 vs 500

0

147

3

OnAcceptHandler 액션 함수

0

70

1

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

0

204

2

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

0

86

2

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

0

112

1