Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我是否可以为已执行线程的新不同线程连续重用pthread_t和pthread_attr_t?_C_Multithreading_Pthreads - Fatal编程技术网

C 我是否可以为已执行线程的新不同线程连续重用pthread_t和pthread_attr_t?

C 我是否可以为已执行线程的新不同线程连续重用pthread_t和pthread_attr_t?,c,multithreading,pthreads,C,Multithreading,Pthreads,我想在不使用pthread_join的情况下连续执行两个不同的线程,可以吗?或者我真的需要像这样声明新线程吗 而且我不需要等待任何一个线程完成。 非常感谢您的帮助,谢谢 pthread_t和pthread_attr_t变量都可以用于每个pthread_create调用。事实上,像这样重用pthread_attr_t是很常见的。但是,重新使用pthread_t变量有点不寻常,因为该值通常存储起来用于线程上的后续pthread操作,例如pthread_join 此外,pthread_attr_t可

我想在不使用pthread_join的情况下连续执行两个不同的线程,可以吗?或者我真的需要像这样声明新线程吗

而且我不需要等待任何一个线程完成。 非常感谢您的帮助,谢谢

pthread_t和pthread_attr_t变量都可以用于每个pthread_create调用。事实上,像这样重用pthread_attr_t是很常见的。但是,重新使用pthread_t变量有点不寻常,因为该值通常存储起来用于线程上的后续pthread操作,例如pthread_join

此外,pthread_attr_t可以为NULL,在这种情况下将使用默认属性。但是,pthread\u t参数不能为NULL。从:

attr参数指向pthread\u attr\t结构,其内容在线程创建时用于确定新线程的属性 线使用pthread_attr_init3和 相关职能。如果attr为NULL,则使用 默认属性

在返回之前,对pthread_create的成功调用将存储ID 线程指向的缓冲区中的新线程的名称

pthread_t和pthread_attr_t变量都可以用于每个pthread_create调用。事实上,像这样重用pthread_attr_t是很常见的。但是,重新使用pthread_t变量有点不寻常,因为该值通常存储起来用于线程上的后续pthread操作,例如pthread_join

此外,pthread_attr_t可以为NULL,在这种情况下将使用默认属性。但是,pthread\u t参数不能为NULL。从:

attr参数指向pthread\u attr\t结构,其内容在线程创建时用于确定新线程的属性 线使用pthread_attr_init3和 相关职能。如果attr为NULL,则使用 默认属性

在返回之前,对pthread_create的成功调用将存储ID 线程指向的缓冲区中的新线程的名称


是的,技术上还可以。虽然在实践中,如果需要终止或连接每个线程或任何其他线程操作,则不跟踪每个线程是不寻常的。如果在创建线程时删除前2个参数,是否也有效?因为我不需要从那些线程到完成等待。你真的确定不需要pthread_加入吗?至少在某个时刻不调用pthread_join是一种不好的做法,因为这可能会导致僵尸线程。另外,如果线程是在主线程中创建的,则主线程必须等待,否则所有线程将在主线程退出时终止。是的,这是肯定的,因为我还有一种方法可以使用传递给线程的地址终止第一个线程。我不知道您最后的注释是什么意思。但是不管怎样,关于你之前的问题,你可以回答。如果愿意使用默认属性值,pthread_attr_t参数可以为NULL,但pthread_t不能为NULL。是的,技术上可以。虽然在实践中,如果需要终止或连接每个线程或任何其他线程操作,则不跟踪每个线程是不寻常的。如果在创建线程时删除前2个参数,是否也有效?因为我不需要从那些线程到完成等待。你真的确定不需要pthread_加入吗?至少在某个时刻不调用pthread_join是一种不好的做法,因为这可能会导致僵尸线程。另外,如果线程是在主线程中创建的,则主线程必须等待,否则所有线程将在主线程退出时终止。是的,这是肯定的,因为我还有一种方法可以使用传递给线程的地址终止第一个线程。我不知道您最后的注释是什么意思。但是不管怎样,关于你之前的问题,你可以回答。如果愿意使用默认属性值,pthread_attr_t参数可以为NULL,但pthread_t不能为NULL。
pthread_create(&th,&thread_attr,shtdwn,(void*)&lpBuffer);
pthread_create(&th,&thread_attr,Run,(void*)&args);