我正在使用pthreads,并且我怀疑如果遇到创建该线程的相同create语句,该线程是否会重新启动?
答案 0 :(得分:0)
如果线程再次遇到thread_create语句,该线程是否会重新启动?
它会创建一个新线程,无论它是否是通过pthread_create
创建的线程调用的。
让我们说我有一个线程t1。如果遇到create语句pthread_create(&t1,NULL,func,NULL),会发生什么。如果我有一个唯一的线程标识符(例如名称t1),如何创建一个新线程?
在这种情况下,您仍在创建新线程,而只是重用/覆盖先前的线程标识符t1
。这意味着您只能在创建的第二个调用pthread_join
,但是失去pthread_join
的功能,更改第一个线程的属性等等的能力。请注意,这仍然有效。但是,如果这是您的用例,则最好创建分离的线程(通过在创建第一个线程之前设置属性或通过线程函数调用pthread_detach
)。分离的线程不能加入,并且在线程退出时(即,通过调用pthread_exit
或从线程函数返回)可以释放其资源。