저는 무한 루프를 돌면서 accpet하는 클라이언트마다 thread를 생성하는 루틴을 만들었는데여..
join을 사용하지 않으면 잘되지 않더라구여...
어떻게 안되냐면 pthread_create함수를 거치지 않고 무한루프만 계속돕니다. 접속한 클라인언트 ip와 port를 출력 해보면 같은 포트의 클라이언트가 많이 나옵니다. 클라이언트는 같은 시스템에서 실행 하구여....
하지만 join을 사용하면 잘됩니다...
설명이 정리가 안되는점 이해해 주세요...
질문의 요지는 join을 쓰면 detch를 쓰지 않아도 되는건가여?
또 join을 사용하지 않으면 나타나는 문제 입니다......
연대가능하다는게 무슨 뜻인지는 모르겠는데요.
thread가 끝나면, pthread_join을 통해서, thread가 차지하고 있던
resource를 반환하도록 하고, 종료 return 값을 받을수가 있습니다.
pthread_detach 한다는 것은, 그 결과 값에 관심이 없으므로,
thread가 끝나면 알아서 리소스 반환하도록 한다는 것이되겠지요.
thread를 detach하는 다른 방법으로는, create할때
PTHREAD_CREATE_DETACHED attribute를 세팅할 수도 있는데,
library가 지원하는 posix표준 정도에 따라 가능하지 않은 경우도 있습니다.
근데, 연대가능하다라는 말이 어느책에 나오나요? :-)
[code:1]스레드는 연대 가능하거나(기본 설정) 분리
스레드는 연대 가능하거나(기본 설정) 분리 가능하다.
Unix Network Programmin vol.1(networking API: socket and XTI)
김치하 역... --;
.지우.
s(˘∼˘*)z,·´″"`°³о$ √(´∀`√)... (˘ヘ˘ㆀ)a
연대라는 말은 join을 말하는 것이고 분리는 그대로 detach를 말하
연대라는 말은 join을 말하는 것이고 분리는 그대로 detach를 말하는 것입니다.
detach된 상태는 해당 함수(쓰레드)가 종료하면 바로 종료하게 됩니다. 물론 자원도 반환되죠.
join된 쓰레드는 pthread_join이 호출로 깨끗하게 반환할 수있습니다.
========================================
* The truth will set you free.
join 과 detch는 같이 않쓰는건가여?
그럼
join을 쓰면 detch를 쓰지 않아도 되는건가여?
저는 무한 루프를 돌면서 accpet하는 클라이언트마다 thread를 생성하는 루틴을 만들었는데여..
join을 사용하지 않으면 잘되지 않더라구여...
어떻게 안되냐면 pthread_create함수를 거치지 않고 무한루프만 계속돕니다. 접속한 클라인언트 ip와 port를 출력 해보면 같은 포트의 클라이언트가 많이 나옵니다. 클라이언트는 같은 시스템에서 실행 하구여....
하지만 join을 사용하면 잘됩니다...
설명이 정리가 안되는점 이해해 주세요...
질문의 요지는 join을 쓰면 detch를 쓰지 않아도 되는건가여?
또 join을 사용하지 않으면 나타나는 문제 입니다......
네 맞습니다..
join을 쓰면 detach 쓰지 않아도 됩니다..
댓글 달기