디시인사이드 갤러리

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

갤러리 본문 영역

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

좆좆뉴비(114.207) 2012.03.27 01:30:08
조회 164 추천 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 - -
이슈 [디시人터뷰] 충무로가 주목하는 신예, '세계의 주인' 서수빈 운영자 25/11/24 - -
AD 대학생 필수템! What's in my Bag 운영자 25/11/21 - -
308808 프갤림들 질문 이서요 [3] 강원도(1.177) 12.03.30 47 0
308807 웹이나 모바일 개발자들 많이 모여서 쑥덕대는 곳 없나 [1] 41234(115.93) 12.03.30 91 0
308806 앱개발자에 대한 니들의 착각 [4] ㄱㅇ(125.177) 12.03.30 156 0
308805 소스 인사이트 ftp, sftp 되냐 안되냐 NightWish갤로그로 이동합니다. 12.03.30 621 0
308804 내 프로그래밍 능력 일차 목표 [5] 생물학(211.234) 12.03.30 128 0
308803 [스샷추가함] 오늘의 뻘짓 [5] 땡칠도사갤로그로 이동합니다. 12.03.30 137 0
308802 게시판 서비스 만들었음. [2] fguy갤로그로 이동합니다. 12.03.30 125 0
308798 네트웍 아는 형들!http request response 좀 알려줘.. [6] 형들화이팅(183.102) 12.03.30 81 0
308797 아씨벌 간짬뽕 쳐먹다가 체해봣냐 [2] 니 코 가 뭐갤로그로 이동합니다. 12.03.30 57 0
308795 c언어 과젠데 제발 도와줄사람 ㅠㅠ [1] 사재진(1.252) 12.03.30 69 0
308793 야 대학원 박사 딴새끼 vs 직장빨리가기 [8] 니 코 가 뭐갤로그로 이동합니다. 12.03.30 316 1
308792 클래스 진짜 쓰면 쓸수록 쩌는거같다.. [2] 개새끼■갤로그로 이동합니다. 12.03.30 134 0
308791 자라 [1] 정수정•‿•갤로그로 이동합니다. 12.03.30 48 0
308790 선생님들 고딩의작은 고민좀 봐주소.. [7] 고딩(27.119) 12.03.30 104 0
308789 아.. 왠만한 어플은 전부다 올라가잇네... ㅋㅋ(218.37) 12.03.30 60 0
308788 L-value 오류좀 도와줘~ㅠㅠ [1] 도와주셔요(1.176) 12.03.29 52 0
308785 횽들 제이큐ㅓ리 쉽고재미진가요? Html갤로그로 이동합니다. 12.03.29 31 0
308781 내 여자친구는. ... ㅋㅋㅋㅎ(211.117) 12.03.29 54 0
308780 c언어에서 cnt 가 뭐야? [3] ㅇㅇ(210.113) 12.03.29 112 0
308779 가루나 모래가 쌓일때 높이와 반지름은 어떻게 결정됨? [9] ㅇㅇㅇ(121.144) 12.03.29 127 0
308778 학교다닐때 공부좀 해둘걸 ㅇㅇ(210.113) 12.03.29 30 0
308777 MAX_COUNT 가 뭐야?? [2] ㅇㅇ(210.113) 12.03.29 46 0
308776 dreamless, desert, death,...... [1] ㅇㅇ(211.117) 12.03.29 29 0
308775 아놔콘다야 문제가 이거임 [6] 교황갤로그로 이동합니다. 12.03.29 68 0
308774 오라클 어떻게 삭제해? ㅇㅇ(210.113) 12.03.29 22 0
308772 C프로그래밍할때 2D 배열..초보에요 ㅜㅡ [1] 야옹야옹야옹(60.242) 12.03.29 40 0
308771 어디가 잘못됬는지 좀 봐주세요 [2] 씨언어(1.251) 12.03.29 39 0
308770 인터넷에서 본글인데 자바초보(111.118) 12.03.29 35 0
308769 memset 좀 쉽게 설명해줘..ㅠㅠㅠ ㅇㅇ(210.113) 12.03.29 29 0
308768 프갤 망한줄 알앗네 디지털에 왜 안보임? C언어찌랭이갤로그로 이동합니다. 12.03.29 40 0
308767 memset 뭐하는거야? [2] ㅇㅇ(210.113) 12.03.29 50 0
308766 윈도우 이전버전 없는데 업그레이드버전사서 단속대비용으로 사용하면 [2] ㅇㅇ(112.159) 12.03.29 60 0
308764 요즘 회사에서 존나 깨지네;;; ㅇㅇ(210.113) 12.03.29 74 0
308763 아....미치겠네요 [1] 초잉여(118.130) 12.03.29 27 0
308762 구글 코드잼 보름 후 시작이다... 아놔콘다갤로그로 이동합니다. 12.03.29 92 0
308761 다이렉트x말야 이건뭐c나c+처럼문법이없어?그냥 왕창왜어야대?; [2] 나라용갤로그로 이동합니다. 12.03.29 85 0
308760 이클립스 플러그인들 다 무설치야? [1] ㅋㄱ(110.70) 12.03.29 33 0
308758 이런 클래스 구조는 어떤거 같아 ? [14] ssonacy갤로그로 이동합니다. 12.03.29 223 0
308757 아..뭔가 겉도는 느낌이다... [2] 돌아이바갤로그로 이동합니다. 12.03.29 78 0
308756 연구실 광탈햇네 asdf(211.117) 12.03.29 43 0
308755 버블정렬 횟수 구하는건데 오류뜸 한번봐줭 티아고알베스갤로그로 이동합니다. 12.03.29 33 0
308754 형들 안드로이드랑 db좀 아는형들 읽어주면 감사하겠엉(도저히 감이안와서) [2] 뉴뉴비(121.143) 12.03.29 85 0
308753 우리나라 불만 2가지 [7] ㅁㅁ(1.241) 12.03.29 102 0
308751 이제 프로그래밍 . 입문하는데 ㅠ 이해안가는 개념있어서요 [13] 뉴..늅(121.184) 12.03.29 130 0
308748 웹소켓 난쟁이오크갤로그로 이동합니다. 12.03.29 45 0
308746 C++ 기본서 [1] ㅁㄴㄻㄹ갤로그로 이동합니다. 12.03.29 94 0
308745 좋은대힉은 강의질이좋나 [10] 금고래갤로그로 이동합니다. 12.03.29 175 0
308744 형님들인사드리러옴 [1] 프갤좆뉴비(115.23) 12.03.29 47 0
308743 간단한건데; [1] ㅇㅇ(58.141) 12.03.29 52 0
308742 호 자바도 전처리기가 지원이 되네.. [3] 쿄스케갤로그로 이동합니다. 12.03.29 142 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2