私はちょうどそれらに慣れるためのスレッドで遊んだので、私はすべて同時に生きている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";
}
}
しかし、それは総数を言っ続けます私はここで何が分からないのですか?
スレッディングとは関係ありませんが、バッファがあふれています。あなたのループは 'for(int i = 0; i <20; i ++)'でなければなりません、そうでなければバッファは 'pthread_t arr [21];'でなければなりません。わずか20の配列)。 –
@JerryCoffin:今OPには22の問題があります! –
私はそこに別の値を持っていました。私はここでそれをコピーしました。私は修正します。 – Marty