【发布时间】:2011-05-21 14:48:58
【问题描述】:
假设我创建了一个线程,它在某些时候调用了一个函数 foo()。 如果我从 foo 中调用 pthread_exit(),结果是否会终止 调用 foo 的线程?
谢谢, 尼科斯
【问题讨论】:
假设我创建了一个线程,它在某些时候调用了一个函数 foo()。 如果我从 foo 中调用 pthread_exit(),结果是否会终止 调用 foo 的线程?
谢谢, 尼科斯
【问题讨论】:
当然。否则 pthread_exit 首先有什么意义。 http://www.kernel.org/doc/man-pages/online/pages/man3/pthread_exit.3.html "pthread_exit() 函数将终止调用线程"
【讨论】:
来自文档:
pthread_exit() 函数终止 调用线程
【讨论】:
是的,当然。它还将导致调用清理代码(如果有)。请注意,它不会自动清理互斥锁等应用程序资源。有关详细信息,请参阅pthread_exit() 文档。
【讨论】:
当然 - 线程上下文不受调用/返回的影响。无论调用堆栈有多长,线程都在调用 pthread_exit()。如果有 20 个线程调用 foo,那么所有 20 个线程都将退出。
Rgds, 马丁
【讨论】: