如果线程再次遇到thread_create语句,是否会再次重新启动?

时间:2019-02-21 06:55:04

标签: pthreads

我正在使用pthreads,并且我怀疑如果遇到创建该线程的相同create语句,该线程是否会重新启动?

1 个答案:

答案 0 :(得分:0)

  

如果线程再次遇到thread_create语句,该线程是否会重新启动?

它会创建一个新线程,无论它是否是通过pthread_create创建的线程调用的。

  

让我们说我有一个线程t1。如果遇到create语句pthread_create(&t1,NULL,func,NULL),会发生什么。如果我有一个唯一的线程标识符(例如名称t1),如何创建一个新线程?

在这种情况下,您仍在创建新线程,而只是重用/覆盖先前的线程标识符t1。这意味着您只能在创建的第二个调用pthread_join,但是失去pthread_join的功能,更改第一个线程的属性等等的能力。请注意,这仍然有效。但是,如果这是您的用例,则最好创建分离的线程(通过在创建第一个线程之前设置属性或通过线程函数调用pthread_detach)。分离的线程不能加入,并且在线程退出时(即,通过调用pthread_exit或从线程函数返回)可以释放其资源。