>> Read No. 8335 article  
[질문]최대 스레드 생성시 다운문제...?고수님 부탁
드립니다.

등록 2000-10-13 18:53:00     조회 1
이름 이희석    

		먼저 이 소스는
스레드를 5천개 까지 만들어 보는 함수 입니다.
그러나 1000여개(스레드 갯수가 1000여개가 아니구요
1000여번 pthread_create함수를 호출한다고 말하는게
더욱 정확 하겠내요) 정도가 되면 11번 에러를 내보내더라구요.
이유는 max_thread가 1024로 정의가 되어 있더라구요. 그래서 11번 에러
를 내는 것이구요.
 근데 이상한 점은 vmstat 1로 찍어 보면 분명히 스레드 수치는 증감을 하면서
함수가 리턴되면 없어지고 있거든요. 근데 pthread_create 함수를 써서
만들면 1024를 못넘기고 죽어 버리는 현상이 나타 난다는것이죠.
 그래서 주석처리 아래 함수들 pthread_cleanup_push,pthread_cleanup_pop함수를
써서 바꾸어 보았더니 5000개 까지 무사히 만들 더라구요.
 그러나 문제는 제가 하는 작업에선 스레드 생성후에 만들어진 스레드에서 다시
스레드를 만들어 client로 부터 오는 패킷을 처리를 해야 하거든요.
 요약을 하면, 제가 알고 싶은점.
1. pthread_cleanup_push,pthread_cleanup_pop함수를 사용한다면 선택적으로
  pop을 할수 있는 방법이 있는지요?
2. 아님 어떤 다른 pthread함수를 사용해서 제가 하고자 하는 기능을 만들수
있는지요?
 3. pthread_create 함수를 사용하면서 스레드를 5000개 이상 만들수 있는 방법?
 부탁 드립니다.
#include <pthread.h>
#include <stdio.h>
 void func(int arg) {
    int i=0;
    while(i<9999999) {
        i++;
    }
        printf("this is thread %d",arg);
}
 int main(void)
{
    pthread_t th;
    int thr_err=0,k;
    void* (*thread_func)(void *);
    thread_func=func;
 
    for( k=0; k<5000 ; k++) {
/*     
        if (( thr_err=pthread_create(&th,NULL,thread_func,(void *)k)) != 0 ) {
                printf(" this is error num=%d",thr_err);
                exit(0);
        } */
        pthread_cleanup_push(thread_func,(void *)k);
        printf(" Thread create success!!! %d",k);
        pthread_cleanup_pop(0);
   
    }
//    getchar();
    return 0;
}
 --
이 곳에 서명을 적어주십시오.이희석
이름
암호
Register [ localhost 목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 0.55 초 ] 작업시간: [ 0.17 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1789756800
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.