• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

이건 컴퓨터 성능 때문일까요?

21.08.19 19:29 작성 조회수 101

0

안녕하세요, 선생님 c# 게임 서버 강의를 수강하다가 선생님과 다르게 작동하는 부분이 있어서 질문드립니다

6번째 강의인 컴파일러 최적화 강의에서 코드를 실행하면 4:25초경에

쓰레드 시작!

쓰레드 종료!

Stop 호출

종료 대기중

종료 성공

이 순서대로 선생님은 실행이 되는데요, 저는

쓰레드 시작!

Stop 호출

종료 대기중

쓰레드 종료!

종료 성공

순서로 쓰레드 종료!가 더 늦게 뜨네요

강의에서처럼 _stop에 volatile을 붙이면 선생님이랑 같은 값이 나오긴 하는데

컴퓨터 성능 차이 때문일 수 있나요?

코드가 다른 부분은 없습니다. 몇 번이고 확인했어요

감사합니다!

답변 1

답변을 작성해보세요.

0

성능 차이라기보단 그냥 멀티쓰레드 특성상
동시다발적으로 실행되기에 결과가 완전 동일하게 나오지 않을 수 있습니다.

권경환님의 프로필

권경환

2023.03.07

안녕하십니까 선생님

위 질문과 관련해 릴리즈 모드로 해서 실행을 하면 먹통이 되어야 하는데, 저는 먹통이 안 되고 "종료성공"까지 다 나옵니다. 혹시 이유를 알 수 있을까요?

참고로 위 질문의 증상과 저도 동일하게 나타나고 닷넷 프레임워크로 프로젝트를 만들었습니다.

혹시나 해서 닷넷코어로 프로젝트를 만들어서 해보면 수업처럼 먹통이 되긴 하는데, 닷넷프레임워크로 프로젝트 만들면 릴리즈로 실행 시 먹통이 안 되고 잘 실행이 됩니다.