C++ 如何增加进程中运行的线程数?

C++ 如何增加进程中运行的线程数?,c++,multithreading,pthreads,parallel-processing,C++,Multithreading,Pthreads,Parallel Processing,我只是在玩线程来适应它们,所以我想让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, threadF

我只是在玩线程来适应它们,所以我想让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";
    }
}
静态void*threadFunc(void*str)
{
睡眠(5);
}
int main(int argc,char*argv[])
{
pthread_t arr[20];
对于(int i=0;i<20;i++)
{
pthread_create(&arr[i],NULL,threadFunc,(void*)NULL);

cout你认为pthread\u is\u threaded\u np()
有什么作用?这里有一个提示:这不是你想要的。

ooh oops。我忘了,我试过使用pthread\u is\u multi threaded\u np(),但它说它没有声明。这就是我需要的吗?你认为这个函数有什么功能?你有它的文档链接吗?我看了这个,所以函数的“多”版本可能会执行您想要的操作,但您的平台上不存在它(您还没有告诉我们您使用的是什么系统)。非多版本被记录为不执行您想要的操作。这两个版本都标记为“np”“对于不可移植,这意味着您可能不应该依赖它们,除非您绝对必须依赖它们。我在使用linux时可以选择哪些选项来查找它们?与线程无关,但您的缓冲区溢出了。您的循环应该是
,用于(int i=0;i@JerryCoffin:现在OP有22个问题!我在那里有一个不同的值,只是在复制到这里时更改了它。我将修复它。