쓰레드 질문좀 드릴게요..디버깅이 힘들어서..;
글쓴이: emeraldrhapsody / 작성시간: 일, 2014/08/03 - 5:27오후
쓰레드 시작시키는 함수구요.
pthread_mutex_lock(&m_mutex); pthread_attr_setdetachstate( &m_attr, PTHREAD_CREATE_DETACHED ); pthread_create( &m_hRecvThread, &m_attr, RecvThread, this ); pthread_cond_signal(&m_hRecvThreadEvent); pthread_mutex_unlock(&m_mutex);
쓰레드 함수입니다.
void *RecvThread(void *pArg) { CTestThread *pFrm = static_cast<CTestThread*>(pArg); if ( pFrm != NULL ) { TRACE("RecvThread RecvThread\n\n"); //변수 선언 TRACE("RecvThread RecvThrea 123123 d\n\n"); while (1) { //todo break; } TRACE("RecvThread RecvThrea 567567 d\n\n"); } }
대략 이런 식으로 생겼습니다.
근데 컴파일하고 실행시켜 보면 RecvThread RecvThread 이게 한번 출력 될 때도 있고, 두번 출력 될 때도 있고, 그 아래 printf문은 출력이 될 때도 있고 안될 때도 있는데
이게 쓰레드를 joinable이랑 detach 다 해봤는데 둘다 어디까지 실행되는지를 모르겠어서 질문드려요.
아니면 로그파일에 남기는 형식으로 바꾸면 잘 찍힐까요?
Forums:
joinable이 pthread_join 을 말하는건가요?
예를들어 메인에서 쓰래드를 실행 시켯으면
메인이 종료되지 않도록 막아줘야 합니다
그 방법으로 무한루프나 join 함수가 있죠
joinable이 제가말하는 join 함수가 맞다면 상관없겠습니다만..
답변 감사합니다
답변 감사합니다
댓글 달기