강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Không có người viết

Bài viết có thông tin người viết đã bị xóa.

[Phát triển game MMORPG với C# và Unity] Phần 4: Game Server

Phiên #1

Disconnect 함수의 임계영역

Viết

·

238

1

안녕하세요 ㅎㅎ 궁금증이 생겨 질문드립니다.

강의 21분에 "Disconnect 함수를 동시 다발적으로 실행하거나 같은  Thread가 두 번 한다면" 이라고 말씀하셨습니다.

 Q.1 Disconnect 함수를 동시다발적으로 실행할 수 있나요? 다르게 말하면 DisConnect함수가 실행하는 내용이 임계영역인가요? 

여러번 고민해봤는데 Disconnect를 호출하는 OnAcceptHandler는 인자로 스레드마다 독립적으로 하나씩 가지고 있는 clientSocket을 받고

clientSocket으로 Session.Start(clientSocket); 을 통해 Session 클래스의 객체를 초기화 해주기에 임계 영역이 아니라고 생각합니다. 

후자로 말씀하신 하나의 Thread에서 실수로 코드에 두 번 기입해서 Disconnect를 하지 않는 이상 별다른 문제가 없다고 생각합니다.

Q.2 매번 코드를 작성할 때마다 임계영역인지 아닌지 고민하면서 코딩하다 보면 머리가 터질 것 같습니다.

선생님께서는 눈에 보이는 임계영역에만 상호배제를 해주고 후에 배포 전에 테스트 단계에서 문제가 발생하면 그때 수정하는것도 현명한 방법이라고 생각하시나요? 조언 부탁드립니다!! 

unityC#network

Câu trả lời 2

2

Rookiss님의 프로필 이미지
Rookiss
Người chia sẻ kiến thức

Q1)
나중에 가면 컨텐츠 코드에서도 해킹 등을 의심되면 쿨하게 Disconnect를 호출해버립니다.

Q2)
일일히 Lock을 신경쓰고 컨텐츠를 만들진 않고,
나중에 JobQueue에 대한 내용을 보시면 알게 될겁니다.

0

저도 이 내용이 궁금했었는데 덕분에 해결했습니다.

Không có người viết

Bài viết có thông tin người viết đã bị xóa.

Đặt câu hỏi