如果调用函数结束,线程会死亡吗?

Will a thread die if the calling function ends?

考虑执行函数 hello() 的线程 t1。我正在从函数 func() 内部创建和调用线程 t1。我的问题是,如果 func() 结束,即使线程尚未结束并且仍有工作要做,线程 t1 是否会死亡?

线程不会跟踪创建它们的线程,也无法知道创建线程是否已结束。

线程仅结束:

  • 如果线程创建时调用的函数终止

  • 如果线程调用pthread_exit()

  • 如果线程收到带有 pthread_kill(thread_id, sig) 的信号并且处理程序终止线程。

  • 如果另一个线程调用 pthread_cancel(thread_id)。线程必须知道要杀死的线程的 thread_id 并且有禁止取消的方法。

  • 如果进程终止。