임계 영역(CriticalSection) 설정없이 사용할 경우

프라우드넷 Thread 관련하여 문의 드립니다. RMI, 사용자 정의 코드에서 임계 영역(CriticalSection) 설정없이 컨텐츠에만 집중하려 합니다.

질문 1

  1. I/O NetThread 개수는 Default로 설정된 CPU 개수만큼 사용

  2. UserWorker Thread 는 컨텐츠에 집중하기 위해 싱글 스레드 사용 image (13)

위와 같이 CStartServerParameter를 설정하면 I/O NetThread는 CPU 개수만큼, UserWorker Thread는 싱글 스레드로 동작하는 게 맞을까요?

질문 2

질문 1처럼 설정했을 때, I/O는 멀티 스레드의 효과를 Default 설정과 같이 동일하게 내고, 워커스레드는 RMI, 사용자 정의 코드에서 임계 영역 설정 없이 정상 동작하는 걸까요?

질문 3

위와 같이 NetWorker는 MultiThread로 UserWorker는 SingleThread로 했을 때 문제 되는 점이 있을까요? 성능 차이는 많이 나는지 궁금합니다.

  1. ExternalThreadPool을 만들지 않아도 StartServerParameterm_threadCount만 1로 설정하시면 Networker는 코어 수만큼 UserWorker는 싱글스레드로 동작합니다.

  2. 네, Networker는 멀티, UserWorker는 임계 영역 설정없이 사용 가능합니다.

  3. 단정 지어서 말씀드릴 순 없습니다만, UserWorker에서 수행하는 작업에 따라 성능 차이가 날 수 있습니다.