[질문] 스레드 관련 (재발 도와주세요)

익명 사용자의 이미지

스레드를 1초간격으로 계속 만듭니다. 근데 그 스레드는 화면에 한줄만 출
력하고 바로 죽습니다.
다음과 같은 에러 메시지가 나옵니다.

pthread_create Interrupted system call

그런데 사양이 낮은 컴은 250번 정도 가다 죽고,
사양이 좋은 컴은 1000번 정도 가다 죽습니다.

무슨 문제인지 모르겠습니다....

고수님들 재발 도와주세요!!

#include
#include

pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
int count = 0;

void* function( void* arg )
{
int tmp = 0;
pthread_mutex_lock( &mutex );
printf("%d\n", count++);
pthread_mutex_unlock( &mutex );
pthread_exit(NULL);
return 0;
}

int main( void )
{
pthread_t t;
int i;

for(i=0; i<100000; i++) {
if(pthread_create( &t, NULL, &function, NULL )) {
perror("pthread_create");
break;
}
usleep(1000);
}

return 0;
}

익명 사용자의 이미지

여기 게시판에서 "쓰레드" 라는 제목으로 검색하니 답변이 나오네요 ^^
pthread_detach를 하세요
그럼

간절이 wrote..
스레드를 1초간격으로 계속 만듭니다. 근데 그 스레드는 화면에 한줄만 출
력하고 바로 죽습니다.
다음과 같은 에러 메시지가 나옵니다.

pthread_create Interrupted system call

그런데 사양이 낮은 컴은 250번 정도 가다 죽고,
사양이 좋은 컴은 1000번 정도 가다 죽습니다.

무슨 문제인지 모르겠습니다....

고수님들 재발 도와주세요!!

#include <stdio.h>
#include <pthread.h>

pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
int count = 0;

void* function( void* arg )
{
int tmp = 0;
pthread_mutex_lock( &mutex );
printf("%d\n", count++);
pthread_mutex_unlock( &mutex );
pthread_exit(NULL);
return 0;
}

int main( void )
{
pthread_t t;
int i;

for(i=0; i<100000; i++) {
if(pthread_create( &t, NULL, &function, NULL )) {
perror("pthread_create");
break;
}
usleep(1000);
}

return 0;
}

익명 사용자의 이미지

........