2012-02-21 12 views
2

私はちょうどそれらに慣れるためのスレッドで遊んだので、私はすべて同時に生きている20個のスレッドを作りたいと思って、このプログラムを書いた:プロセスで実行中のスレッドの数を増やすにはどうすればよいですか?

static void * threadFunc(void *str) 
{ 
    sleep(5); 
} 

int main (int argc, char * argv[]) 
{ 

    pthread_t arr[20]; 

    for(int i = 0; i < 20; i++) 
    { 
     pthread_create(&arr[i], NULL, threadFunc, (void*)NULL); 
     cout << "i=" << i << "\ntotal threads=" << pthread_is_threaded_np() << "\n"; 
    } 
} 

しかし、それは総数を言っ続けます私はここで何が分からないのですか?

+1

スレッディングとは関係ありませんが、バッファがあふれています。あなたのループは 'for(int i = 0; i <20; i ++)'でなければなりません、そうでなければバッファは 'pthread_t arr [21];'でなければなりません。わずか20の配列)。 –

+0

@JerryCoffin:今OPには22の問題があります! –

+0

私はそこに別の値を持っていました。私はここでそれをコピーしました。私は修正します。 – Marty

答えて

2

pthread_is_threaded_np()はどうなっていますか?ヒントがあります:あなたが望むものではありません。

+0

ooh oops。私は忘れて、私はpthread_is_multithreaded_np()を使ってみましたが、宣言されていないと言いました。それが私の必要なものですか? – Marty

+0

その機能は何と思いますか?そのドキュメントへのリンクがありますか? –

+0

私はこれを見ていましたhttp://cursuri.cs.pub.ro/~apc/2003/resources/pthreads/uguide/users-24.htm#318361 – Marty

関連する問題