버그 해결을 위한 모든 질문을 던져
–3 votes
85 views
마우스 왼쪽 버튼 클릭 시 화면에

50176 50195 49849 50383 49893 50047 49929 49724 49978 49826

total = 500000

이 출력 (Visual studio 2013 - C++ - Win32 프로젝트(API) 파일)

프로그램 내용 : 5개의 Thread를 이용하여 read()함수의 성능을 실험한다.
read()함수가 균열하게 0~9까지의 임의수를 발생시키는지 실험하고자 한다.

-각 Thread는 1~5까지의 seed를 넘겨받아 10만번씩 read(0함수를 호출하여
0~9까지의 임의 수를 발생시켜 전역배열 a[10]에 횟수를 기록한다

-DWORD WINAPI ThreadFunc(LPVOID seed)
{
 int s=*(int*)seed;
                  srand(s);
'''''''''''''
         a[rand()%10++];
다섯개의 Thread에 대해 동기화가 필요함

-Primary Thread는 왼쪽 버튼을 누를 때 마다 위의 Thread를 생성하고 static int s[5] ={1,2,3,4,5}를 이용하여
인자를 전달한다. Thread의 계산이 끝나기를 기다린 후 결과를 출력한다.

*추가적으로 마우스 왼쪽버튼을 누를 때 마다 seed 값을 각각 5씩 증가시켜 전달해본다. 균일하게 발생시키는가?

*참고
-Thread body는 1개이다
-동기화 객체는 mutex만 사용한다

 

윈도우즈 프로그래밍 스레드 문제인데 도저히 안풀려서 질문하게 되었습니다.

혹시나 글을 보시고 풀이하신 회원님이 계신다면  소스 통째로 받아서 개인적으로 풀이하고 싶습니다ㅠㅠ
asked (-1 point) , 85 views

질문에 대한 답변을 하려면 로그인 또는 가입해야합니다.

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

282 질문
409 answers
410 댓글
600 users