멀티스레드
글쓴이: marionette10 / 작성시간: 금, 2013/12/06 - 10:42오전
여러스레드는 값을 증가하고
한스레드는 그 값을 증가한 각각의 변수에 함수를 호출하여 그 값에 대한 결과값을 계산하여 프린트로 출력
하는 내용인데
그게 출력을 sleep2초를 주어서 하고있는데
출력을 하면 그 계산한 결과값이 2초의 시간을 두고 결과값이 출력되고 2초지나면 0으로 나오고
나왔다가 안나왔다가 반복을 하고 있습니다.
제가 스레드에 대한 개념은 알고 있지만 깊이 알지 못해서 이유를 찾지 못하고있습니다.
Forums:
답변이 될지 모르겠네요. ㅇ_ㅇ;;
A +++++++++++
B +++++
C +++++++
D printf(A() + B() + C())
2초 마다 결과값 출력. 성공 or 실패
Sleep()을 사용하면 다른 스레드로 점유가 넘어가서 그런가 봅니다. ㅇ_ㅇ;;
1. 윈도우에서의 Sleep()은 1을 줄경우. 10만큼에 효과를 가진다고 합니다.
2.
_asm
{
NOP;
}
로 줄여줄 수 는 있지만. 미약합니다.
3. 점유율을 줄이는 방법에는
select()도 있긴 하지만. 사용할 줄 몰라서 그런지. 느리더군요.
그냥 CEvent()나 thread suspend등으로 멈췄다. 진행했다를 시간에 맞도록. 조정하는것이 나을거 같습니다.
4. Real Time OS 소스를 보시면. 도움이 될지도 모릅니다.
5. 윈도우에서는 고속 시간에 QueryPerformanceCount() QuertPerformanceFrequency() 등을 사용합니다.
http://virspace.blog.me/80001329924
정리된 예제를 참고해 보세요
http://jaehyuk.tistory.com/236
http://blog.daum.net/knightofelf/513
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기