thread 감시 대 while문..
글쓴이: yangsg / 작성시간: 목, 2005/04/28 - 11:28오후
그냥 문득 생각이 나서 글 올립니다..
네트워크 프로그래밍 중에 접속시 마다 새로운 쓰레드를 생성해서 그쪽에서 send. recv 등의 처리를 합니다..
그렇다면.. 많은 쓰레드들(즉 접속)이 있을 경우 접속한 fd에 대해서 멀티케스트를 한다면..
그냥 while문을 돌면서 던지는 거와.. 일종의 전역 리스트 같은 것을 각각의 쓰레드가 감시를 하면서 쓰레드가 보고 찾아서 던지는 거..
어떤게 더 빠른 성능을 보일까요..??
각 운영체제 마다 다른 성능을 보이겠지만...
일단은.. redhat9, kernel2.4.x.. 이정도로 생각하면 어떨까요..
제 개인적인 생각은 그냥 while문을 도는 것이 전역 리스트를 감시하는 쓰레드가 찾아서 던지는 것보다 빠를듯 한데요..
왜냐하면 어차피 쓰레드는 운영체제에서 스케줄링에 의해서 돈다면
그 스위칭 타임(아무리 짧은 시간이지만)이라는 것이 while문에는 없는 타임이 될꺼라는 생각이 드는데요...
다른분들의 생각은 어떠신지요...
Forums:
잘은 모르지만 thread가 많지 않다면 별차이가 없지 않나요. Pa
잘은 모르지만 thread가 많지 않다면 별차이가 없지 않나요.
Packet이 오면 recv로 blocking된 thread를 찾아서 깨워주는 셈이니 큰 차이는 없을 것 같은데요.
물론 thread가 많다면 memory overhead나 scheduling이나 blocking socke 검색시 overhead가 있을 테지만 속도에는 큰 차이는 없을 것 같고요.
linux에서는 차이가 있나요?
그런 용도로 사용하는게 있어요. i/o multiplexing s
그런 용도로 사용하는게 있어요. i/o multiplexing
select, epoll, poll
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
댓글 달기