쓰레드를 unbound 로 수행?
글쓴이: 하하 / 작성시간: 금, 2004/08/27 - 4:22오후
http://bbs.kldp.org/viewtopic.php?t=2043&highlight=bound+thread
Quote:
쓰레드를 UNBOUND로 수행시키셨기 때문에(process scope)그러한 현상이 발생할 수 있습니다.
이 경우 CPU를 양보하지 않으면 일반적으로 나머지 UNBOUND쓰레드는
동작할 수 없지만, 명시적으로 CPU를 양보하거나, mutex관련
thread wait으로 빠지는 경우 CPU를 양보합니다.
위의 경우도 아닌 경우는 UNBOUND 쓰레드가 I/O를 기다릴 경우인데
이때는 시스템에 따라 CPU를 양보할 수도 아닐 수도 있다고 합니다.
한편, 선과 같은 시스템에서는 concurrency level을 암묵적으로
쓰레드 라이브러리에서 동적으로 조절합니다.
그래서, 님의 프로그램을 수행시키면 시간이 조금 지나면,
모든 쓰레드가 동시에 동작하는 것을 확인하실 수 있습니다.
리눅스의 경우는 system scope, process scope 자체가 없기 때문에
default로 system scope로 동작합니다.
따라서, 첫번째 답변하신 분과 같이 루프 숫자를 크게 하면
서로 번갈아가면서 동작하는 것을 확인하실 수 있을 겁니다.
김성진 드림
위 답글 중 이해 안가는 부분이 있습니다.
UNBOUND THREADE 와 PROCESS SCOPE 란 게 무엇인가요?
Forums:
[url]http://www.joinc.co.kr/modules.php?
http://www.joinc.co.kr/modules.php?name=News&file=article&sid=67
참고하시길~ :)
' 형식이 내용을 규정한다. '
댓글 달기