작성
·
216
0
1) 첫번째 예제에서 r1,r2를 CPU가 최적화 하는 방식이 궁금해서 각 쓰레드별로 얼만큼 CPU가 순서를 바꿨는지를 세어 봤습니다. 세어 보니까 쓰레드 별 횟수 차이가 되게 많이 났습니다. 이게 CPU가 실행중에 옆에 쓰레드를 보고
"아 첫 쓰레드에서 x값을 쓰네 나는 조심해야겠다"하고 생각해서 두번째 쓰레드는 코드의 순서를 더 바꾼건가요??
2) Thread.MemoryBarrier에서 Thread 클래스에 각 thread들을 관리할 수 있는 기능이 있는거 같은데, c# 쓰레드 클래스 안에 각 instance들을 자료구조로 관리하고 있는건가요??
답변 1
0
1)
무엇을 어떻게 테스트하셨는지 모르니 저도 뭐라 할 수 없습니다.
다만 그렇게 심오하게 옆 쓰레드를 참고한 것은 아닐 것 같네요.
2)
질문이 조금 모호한데, 결론적으로 쓰레드는 운영체제가 관리하는 것입니다.
Thread 클래스 안에 쓰레드를 제어하거나 설정할 수 있는 몇가지 기능이 있지만
그 또한 결국 운영체제한테 부탁을 해서 이루어지는 것이죠.