Microsoft MVP성태의 닷넷 이야기
글쓴 사람
김기헌
홈페이지
첨부 파일
 

안녕하세요 별도 필드 없이 지역 및 매개변수만 사용하는 간단한 HTTP 요청 메소드를 스레드 2개에서 공유해서 사용하고 있는데
이경우 스레드가 동시에 지역 및 매개변수에 접근하게 될 때에도 공유 리소스를 사용한다라고 말할 수 있는 것인가요?
제가 알기로는 함수 호출을 할 때마다 매번 다른 스택프레임에 함수 정보가 들어가는 것으로 알고 있고
지역변수를 필드로 교체해서 테스트해 보았을 때는 값이 씹히는 문제를 확인했는데 지역 및 매개변수는 꼬이는 문제가 없더라구요
혹시 제가 이론적으로 잘못 알고 있는지 해서 질문드립니다 항상 감사합니다








[최초 등록일: ]
[최종 수정일: 6/21/2022]


비밀번호

댓글 작성자
 



2022-06-21 09시08분
잘 아시고 있는데요. ^^ 말씀하신 것처럼 메서드 호출 시마다 스택 프레임이 쌓이기 때문에 지역 변수는 공유되지 않습니다. 매개 변수의 경우에는 참조 값이 넘어온 경우라면 해당 참조 타입의 멤버 접근이 thread-safe하도록 되어 있어야 합니다. 물론 매개 변수가 순수 값 형식이라면 그에 상관없이 메서드 내에서 불릴 때 공유되지 않습니다.
정성태
2022-06-21 12시15분
[김기헌] 감사합니다!!
[guest]

NoWriterDateCnt.TitleFile(s)