디시인사이드 갤러리

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

갤러리 본문 영역

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

좆좆뉴비(114.207) 2012.03.27 01:30:08
조회 165 추천 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/24 - -
AD 따뜻한 겨울나기! 방한용품 SALE 운영자 25/11/27 - -
308594 대단한 반전이다.... ㅎㄷㄷ [5] 쿄스케갤로그로 이동합니다. 12.03.28 255 0
308592 숙제하기 싫다~ [4] 땡칠도사갤로그로 이동합니다. 12.03.28 84 0
308591 좋은 아침이에요 [2] 어떻해갤로그로 이동합니다. 12.03.28 56 0
308589 횽들 자바 개촙질문 [2] 자바맨(115.20) 12.03.28 47 0
308588 C#, asp.net 교육과정 중에 3개월하고 6개월로 나뉘던데.. insight갤로그로 이동합니다. 12.03.28 70 0
308583 비쥬얼스튜디오 가끔씩 이렇게 중단점 안먹히는거 버그인가요? [2] 모미지갤로그로 이동합니다. 12.03.28 88 0
308582 c 오늘 첨하는데 뭐가 잘못된거임? [2] (124.56) 12.03.28 77 0
308580 씨발 군대생각나서 간짬뽕 존나 빠르게 쳐먹다가 니 코 가 뭐갤로그로 이동합니다. 12.03.28 72 0
308578 야 그럼 이산수학 문제하나 [6] 니 코 가 뭐갤로그로 이동합니다. 12.03.28 122 0
308577 노트북 팔십마넌으면 좋은거사나요 [2] Html갤로그로 이동합니다. 12.03.28 99 0
308576 이산수학 논리와 명제 단원 3분만에 이해하기 [2] ㅇㅁ(114.199) 12.03.28 211 0
308573 아직도 보안에 신경안쓰는 사이트 많더라 [1] 정수정•‿•갤로그로 이동합니다. 12.03.27 175 0
308572 (자살춤 > 삭니)?자살춤:삭니 [2] ㅋㅋㅋ(211.117) 12.03.27 60 0
308571 c 시작한지 4일만에 [7] ㅇㅁ(114.199) 12.03.27 132 0
308570 근데 디씨 왜 이렇게 문제가 많냐? [1] 1(220.76) 12.03.27 55 0
308569 가끔씩 내가 왜 살아야 하는지 모를 때가 많다. SODMaster갤로그로 이동합니다. 12.03.27 49 0
308568 내가 씬입싸원 모나미 인증짤 못보고 입대했는데 [4] ㅋㅋㅋ(211.117) 12.03.27 97 0
308562 막상 회사 들어가니까 언어 생각보다 별거 없더라 [2] ㅇㅇ(210.113) 12.03.27 112 0
308561 자바에서 3%1.2 = ? afd(211.117) 12.03.27 30 0
308559 형들 자바스크립트 계산이 인데요 왜 안될까요 도대체 왜 제발 왜 [4] asd(222.100) 12.03.27 67 0
308558 sql이랑 c랑 합쳐진거 뭐라고 불러? [4] ㅇㅇ(210.113) 12.03.27 81 0
308557 형들아 컴구조 배우다가 멘붕옴 [1] afd(211.117) 12.03.27 76 0
308556 hello world! Html갤로그로 이동합니다. 12.03.27 28 0
308555 주소록 질문좀여 ㅠㅠ lll(203.244) 12.03.27 24 0
308554 열혈강의 C 윤성우저 공부하고 있는데 질문있어요. [2] ㅁㄵㅂ(121.148) 12.03.27 113 0
308553 나눗셈하는데 왜 소수점자리가 0이되버리지?? [1] ㅇㅇㅇ(121.191) 12.03.27 70 0
308552 인간들이 맨날 vim vim 해서 vim을써봤다. [14] ㅇㅇ(112.159) 12.03.27 168 0
308551 프겔의 미래 [5] 시불라미갤로그로 이동합니다. 12.03.27 118 0
308550 IDL 함수 수식쓰는거좀 도와주세요 뭐가잘못된건지; (111.65) 12.03.27 57 0
308549 취미로 웹플밍좀 해볼려고하는데 php+mysql이 젤 무난하냐? [4] ㅇㅇ(112.159) 12.03.27 122 0
308548 닷넷쪽 맛탱이 가고있나보다.. .3(121.143) 12.03.27 80 0
308547 디버깅만 하면 창이 곧바로 꺼지는거 좀 도와주세요.. [5] ㅇㄴ(124.199) 12.03.27 85 0
308546 구글 메인 - less is more [3] sloth_갤로그로 이동합니다. 12.03.27 87 0
308545 레노미아횽 짱 무섭네 [1] 생물학(211.234) 12.03.27 46 0
308543 김유식봐라. ㅇㅇ(112.159) 12.03.27 39 0
308542 드림스파크 시발 한글만 에러남... ㅇㅇ(112.159) 12.03.27 21 0
308540 니들 엿같은 자바랑 안드로이드하지말고, C#이랑 윈폰해라. [1] ㅇㅇ(112.159) 12.03.27 104 0
308539 횽들 api 질문좀.. [1] WKdro(183.100) 12.03.27 49 0
308538 안드로이드(자바).. 이미지파일을 배열로 선언하는 개념을좀..알려주세요 [13] 빵긋(203.226) 12.03.27 131 0
308537 ㅇㅇ 님. [2] 빵긋(203.226) 12.03.27 49 0
308536 안드로이드 이미지 질문... [7] 빵긋(203.226) 12.03.27 75 0
308535 최근 방문갤러리 제대로 뜨네!? ㅋㄱ(183.96) 12.03.27 31 0
308534 형들 자바스크립트 버튼계산기 짜봤는데요 예외처리부분이 어렵네요 갈켜주세요 [2] asdf(222.100) 12.03.27 53 0
308533 집에 오자마자 네이버 켜고 보이는 이수근 하차'' ㅋㄱ(183.96) 12.03.27 46 0
308532 안드로이드(자바)에서.. 이미지를 변수에 2개 선언할때.. [7] 빵긋(203.226) 12.03.27 61 0
308530 드림스파크 무료 개발툴말인데, 대학생신분 끝나면 라이센스도 만료됨? [1] ㅇㅇ(112.159) 12.03.27 177 0
308529 cocos2d-x 다각형충돌체크 하는법 없냐..? 갤튜갤로그로 이동합니다. 12.03.27 1558 0
308527 안드로이드 이미지뷰로 이미지 크기조절하는방법..알려주세용 빵긋(203.226) 12.03.27 33 0
308526 앞으로 프갤러들 과제 해주고 돈받는거냐? Gehenna갤로그로 이동합니다. 12.03.27 47 0
308525 함수 포인터문제 에러 이렇게뜸.. [1] 호솽갤로그로 이동합니다. 12.03.27 50 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2