【问题标题】:pthread_exit from a function called from a threadpthread_exit 从一个线程调用的函数中
【发布时间】:2011-05-21 14:48:58
【问题描述】:

假设我创建了一个线程,它在某些时候调用了一个函数 foo()。 如果我从 foo 中调用 pthread_exit(),结果是否会终止 调用 foo 的线程?

谢谢, 尼科斯

【问题讨论】:

    标签: c linux pthreads


    【解决方案1】:

    当然。否则 pthread_exit 首先有什么意义。 http://www.kernel.org/doc/man-pages/online/pages/man3/pthread_exit.3.html "pthread_exit() 函数将终止调用线程"

    【讨论】:

    • die.net 链接有什么问题? :)
    • 有人抱怨 die.net 手册页已过时。在这样的问题上,它可能无关紧要,但更权威的来源不会受到伤害。
    • 是的,我们中的一些人(真的是你的人)正在努力修复 die.net 链接,尽管它充满了过时的信息,但仍保持在 SEO 的顶部。
    【解决方案2】:

    来自文档:

    pthread_exit() 函数终止 调用线程

    【讨论】:

      【解决方案3】:

      是的,当然。它还将导致调用清理代码(如果有)。请注意,它不会自动清理互斥锁等应用程序资源。有关详细信息,请参阅pthread_exit() 文档。

      【讨论】:

      • 除了健壮的互斥体——但是将它们用于线程而不是进程将是相当浪费的。
      【解决方案4】:

      当然 - 线程上下文不受调用/返回的影响。无论调用堆栈有多长,线程都在调用 pthread_exit()。如果有 20 个线程调用 foo,那么所有 20 个线程都将退出。

      Rgds, 马丁

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多