pthread_exit 从线程调用的函数中退出
假设我创建一个线程,在某个时刻调用函数 foo()。 如果我从 foo 中调用 pthread_exit() ,结果会终止吗 调用 foo 的线程的?
谢谢, 尼科斯
Suppose i create a thread that ,in some point, calls a function foo().
If i call pthread_exit() from within foo, will that have as a result termination
of the thread that called foo?
thanks,
Nikos
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
当然。否则 pthread_exit 首先有什么意义。
http://www.kernel.org/doc /man-pages/online/pages/man3/pthread_exit.3.html
“pthread_exit() 函数应终止调用线程”
Of course. Otherwise what's the point of pthread_exit in the first place.
http://www.kernel.org/doc/man-pages/online/pages/man3/pthread_exit.3.html
"The pthread_exit() function shall terminate the calling thread"
从文档中:
From the documentation:
是的当然。它还将导致调用清理代码(如果有)。请注意,它不会自动清理互斥体等应用程序资源。请参阅 pthread_exit() 文档以获取更多信息。
Yes, of course. It will also result in calling cleanup code, if any. Beware that it won't automatically clean application resources like mutexes etc. See pthread_exit() documentation for more information.
当然 - 线程上下文不受调用/返回的影响。无论调用堆栈有多长,线程都会调用 pthread_exit()。如果 20 个线程调用 foo,则所有 20 个线程都将退出。
平均值,
马丁
Sure - thread context is unaffected by call/return. The thread IS calling pthread_exit(), no matter how long the call stack is. If 20 threads call foo then all 20 threads will exit.
Rgds,
Martin