2012-04-23 5 views
-2

런타임에 어떻게 스레드를 만들 수 있습니까?런타임 스레드 생성

표준 입력에서 스레드 수를 취합니다 -이 번호에 따라 스레드를 생성합니다. 그러나, 어떻게?

Ex: 
    input : N,    N is integer 

    in main function 

       create N thread 

편집 : 플랫폼 리눅스

+1

: 여기

는 N 스레드를 생성하는 C 함수의 시작이다. 그러나 정확히 어떻게 할 것인가는 이것을 실행하기 위해 어떤 시스템을 사용하고 있는지에 달려 있습니다. 스레드는 C 표준의 일부가 아닙니다. 어떤 시스템을 사용하고 있습니까? –

답변

2

예, 스레드 (우리는 우리의 pthreads를 사용한다고 가정하면) 전화 는 pthread_create으로 생성되며, 당신이 호출 할 수 루프에서. 예, 당신이 할 수있는

int start_N_threads(int N) { 
    pthread_t threads[N]; 
    printf("Starting %d thread(s)...\n", N); 
    for (int i = 0; i < N; ++i) { 
     if (pthread_create(&threads[i], NULL, thread_body, (void*)&results[i]) != 0) { 
      printf("Couldn't create thread %d.\n", i); 
     } 
    } 
    printf("The %d thread(s) are running.\n", N);