디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

좆뉴비가 염치 불구하고.. 질문하나만 할게 횽들

좆좆뉴비(114.207) 2012.03.27 01:30:08
조회 162 추천 0 댓글 33

내 머리로는 이해가 안되고


검색도 어떻게 해야할지 한참 고민하다

마땅한게 검색어가 안 떠올라서 질문해 횽들

까놓고 말해서 과제중인데

멀티 스레드 프로그램 중 발생할 문제들 있잖아 

그런 문제에 관한 건데 

과제를 해결하는 과정중에 내 머리로는 동작이 이해가 안되는게 있어서 질문해



일단 슈도코드를 적자면

공유변수=0;
특정한횟수 = 임의의숫자;
메인 스레드()
{
        스레드1 생성
        for(특정한횟수 만큼순회)
        {
                공유변수++;
        }        
        스레드1종료기다림;
        공유변수 출력;
}
스레드1()
{
        for(특정한횟수  만큼순회 )
        {
                공유변수++;
        }        
}

대충 이런데 공유변수의 최종 값이 특정한횟수*1 이상 특정한횟수*2 미만이 되는 상황이 제일 이상적이겠지??
(그니까 실제 코딩상황에서는 공유변수 사용할 때 저런식으로 발생하면 안되겠지만 
 그냥 공유변수를 스레드에서 동시 접근이 일어났을때를 설명하기위한 이상적인 상황을 말하는거야)

그러한 결과를 출력해서 설명하려고 했는데

이해가 정확히 안가는 상황이 뭐냐면

일단
1. 공유변수의 최종값이 특정한횟수*2가 나오는 경우
=> 이건 뭐 어떻게 스레드 1이 실행이 시작되기 전에 메인 스레드 안의 루프가 끝나버리면 되니까 이건 뭐 어느정도 이해
2. 공유변수의 최종값이 특정한횟수*1이 나오는 경우
=> 이 경우가 어떻게 해도 이해가 안돼 

2번 경우는 사실상 특정한 횟수가 1000000번이라고 치면
         전부 더해졌을때 2000000이 나와야 하는 상황에서 1000000이 나왔다는 얘긴데
그럼 각각의 스레드가 각각의 루프를 각각 만회씩 수행을 하는 과정에서 
컨텍스트 스위칭이 정확히 공유변수가 메모리에서 레지스터로 로드되는 시점에만 1000000회가 일어난다는 이야기인데
이게 말이 되나?

근데 웃긴게 여러모로 테스트 해봤는데 특정한 횟수가 1억 이상 넘어가면
그런 현상이 없고, 1000~5000만회 정도면 그런경우가 많이 없는데 그래도 조금 발생하고
1000만회 이하는 매우 자주 발생했고

근데 내가 문득 드는 생각이, 내가 위 코드를 노트북(싱글코어)에서 돌려본거거든
그래서 동일한 컴파일러로 듀얼코어인 PC에서 돌려보면 결과가 다를까? 해서 돌려봤는데 노트북이랑은 달리 특이한 경우는 확 줄어들었고
노트북에서 돌렸을때랑은 달리 노트북에서는 만회정도 돌렸을때는 거의 고정으로 10000, 아님 20000이 나오고
한 단위가 천만이상, 즉 충분히 커야 
십만이상회 가면 적어도 내가 여러본 돌리는 확률정도로는 위에서 말한 특이케이스 안나오더라고. 

당연하다면 당연한 얘기같은데 단일cpu에서는 위의 코드중에 스레드 생성후 스위칭이 안된상태에서 수행을 끝내버려서 그랬겠지;

근데 그렇다 하더라도 2번의 경우는 이해가 잘 안되서..

아 그리고, 그냥 혹시나 증가되는 과정에 문제가 있나 싶어서 노트북으로 테스트할때
개별 변수를 각각의 루프에 부여해서 루프내부에서 증가시킨후에 출력하는 것도 추가시켜봤는데
그런 개별 변수를 넣은 이후에는 또 정상적으로 작동을 하더라고 ㅡ,.ㅡ



아무튼 내가 말을 잘 못씨부려서

안읽은 횽들도 있겠지만

읽어준 횽들 고마웤ㅋ





추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 대박 날 것 같아서 내 꿈에 나와줬으면 하는 스타는? 운영자 25/11/17 - -
AD 대학생 필수템! What's in my Bag 운영자 25/11/21 - -
308486 너는 자유로운가? 너는 스스로 생각하고 행동할 수 있는가? [1] 바보플머(218.155) 12.03.27 43 0
308485 자신을 학대하고 괴롭히지 마라. (길고 긴 고찰 속에서 얻어낸) 바보플머(218.155) 12.03.27 65 0
308483 갤에 오랜만에 왔더니... [11] 엽기토깽이갤로그로 이동합니다. 12.03.27 97 0
308482 자기 자신을 눈꼽만큼이라도 사랑해봐라. (길고 긴 고찰 속에서 얻어낸) 바보플머(218.155) 12.03.27 37 0
308481 내가 진지하게 한마디 하겠다. (길고 긴 고찰 속에서 얻어낸) 바보플머(218.155) 12.03.27 37 0
308479 일 외주를 줬는데... 한가지 프로그램을 델파이, VC, VB로 맹글어왔 [2] .3(121.143) 12.03.27 90 0
308477 C책 어떤게 좋은지 선택 좀 해주세요 [4] 광전사(210.91) 12.03.27 125 0
308476 비주얼스튜디오 11 beta 설치중... .3(121.143) 12.03.27 34 0
308475 갤에 젠이 왜이리 느린가요 [2] 어떻해갤로그로 이동합니다. 12.03.27 32 0
308474 밥 먹었어 [1] 어떻해갤로그로 이동합니다. 12.03.27 33 0
308473 훃들 나 질문 하나만;;; [1] DeCoY갤로그로 이동합니다. 12.03.27 42 0
308472 자바 멀티 쓰레드로 파일 전송하고 받는 클라/서버 만들었는데 [1] 1234(115.93) 12.03.27 64 0
308470 횽들 늅늅이가 질문좀 할께 ㅠ [1] 씨쁠어렵농(203.241) 12.03.27 40 0
308469 오 힐링캠프 봐야겠당.. 재밌을거 같아 [1] 쿄스케갤로그로 이동합니다. 12.03.27 63 0
308468 병신이 병신이 아니게 되는 일은 없다 분당살람갤로그로 이동합니다. 12.03.27 63 0
308465 도배 뿅! 바보플머(218.155) 12.03.27 35 0
308463 나는 이제 알았다. 왜 마음만 먹으면 할 수 있음에도 하지 않는 것인지. [1] 바보플머(218.155) 12.03.27 81 0
308462 나는 바보플머가 되리라. 바보플머(218.155) 12.03.27 30 0
308461 마음만 먹으면 당장 게임을 할 수도 있지만, 은꼴을 볼 수도 있지만... [1] 바보플머(218.155) 12.03.27 70 0
308460 투표용지가 30cm ㅎㄷㄷ [3] iljeomobolt갤로그로 이동합니다. 12.03.27 107 1
308459 마음만 먹으면 당장 할 수 있음에도 하지 않을 때 의지는 더욱 강해진다. [1] 바보플머(218.155) 12.03.27 56 1
308457 출근했어 [1] 어떻해갤로그로 이동합니다. 12.03.27 58 0
308456 으어 [1] 콩찌갤로그로 이동합니다. 12.03.27 35 0
308454 자라 정수정•‿•갤로그로 이동합니다. 12.03.27 57 0
308451 아 자야되는데'' [2] ㅋㄱ(183.96) 12.03.27 36 0
308449 구원의 손길 좀... [4] 왕초보(59.9) 12.03.27 54 0
308448 글좀 싸져라 얍 [4] [성대아싸]갤로그로 이동합니다. 12.03.27 79 0
308447 근대 왜 쓸데없는 질문에도 답변을 달아줘? [5] 일광면(119.198) 12.03.27 80 0
308446 뭔가 배웠다가 잊어먹는게 마음에 안들어'' [3] ㅋㄱ(183.96) 12.03.27 48 0
308444 해커랑 크래커 차이를 알아? [1] 관절인형(121.170) 12.03.27 91 0
좆뉴비가 염치 불구하고.. 질문하나만 할게 횽들 [33] 좆좆뉴비(114.207) 12.03.27 162 0
308441 recv 함수질문 [3] 중간점검갤로그로 이동합니다. 12.03.27 49 0
308440 조별과제가 잘되면 재밌는데'' [6] ㅋㄱ(183.96) 12.03.27 91 0
308437 개강한지 벌써 한달'' [2] ㅋㄱ(183.96) 12.03.27 56 0
308435 자기가 좋아하는일을 하는 사람이 얼마나 될까 [2] 고야 (110.70) 12.03.27 92 0
308434 횽들 It crowd 봤엉? [1] Html갤로그로 이동합니다. 12.03.27 48 0
308433 알고 깝치는 건 이런거임 [6] [성대아싸]갤로그로 이동합니다. 12.03.27 145 0
308432 아우 씨발 얘들아 니들 연봉이 어케되냐? [14] 니 코 가 뭐갤로그로 이동합니다. 12.03.27 227 0
308431 야 뭐 ms에서 무슨 잡지잇찌않냐? 프로그래밍관련해서? [5] 니 코 가 뭐갤로그로 이동합니다. 12.03.27 97 0
308430 ㅋㅋㅋㅋ존나 까이면서 배우는것도 재밌다고생각하는데 [6] CHALLENGER갤로그로 이동합니다. 12.03.27 81 0
308428 얘들아 한번 떡밥 물려보자 (원론을 잘아는지) [2] 니 코 가 뭐갤로그로 이동합니다. 12.03.27 43 0
308427 요즘엔 존나 힘빠진다 [26] 니 코 가 뭐갤로그로 이동합니다. 12.03.26 179 0
308425 엄밀하게 한글로 설명좀해봐라 [34] ㅇㅁ(114.199) 12.03.26 212 0
308424 로보랩 프로그램 여기에 질문해도 되나여? 으흐흑(222.235) 12.03.26 41 0
308423 과제 하하려고 5만원짤 책 사면 돈지랄 vs 배움에 있어서 돈지랄은 없다 [3] topandbottom갤로그로 이동합니다. 12.03.26 79 0
308420 근데 어플리케이션을 응용 으로 번역해놓는 번역본은 뭐하는거임? [1] ㅎㅎ(211.117) 12.03.26 37 0
308419 매트랩 배우고있는데 초보.. 이거 이해가 안간다.;; 누가 도와줘봐요 [1] 공대다니는女(1.251) 12.03.26 129 0
308418 컴구조는 재밋는데 디비는 재미없다 [2] ㅎㅎ(211.117) 12.03.26 54 0
308417 프갤 병신걸러내기 퀴즈문제 [38] ㅇㅁ(114.199) 12.03.26 262 0
308416 니들이 보기에 자바는 도대체 동적바인딩하냐 정적바인딩하냐? [3] 니 코 가 뭐갤로그로 이동합니다. 12.03.26 78 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2