【问题标题】:Difference between pthread_exit() and exit()?pthread_exit() 和 exit() 的区别?
【发布时间】:2012-06-22 15:48:28
【问题描述】:

pthread_exit()exit() 有什么区别?

【问题讨论】:

    标签: c pthreads


    【解决方案1】:

    你读过手册页吗?

    exit() 执行正常的程序终止,而pthread_exit() 杀死调用线程。

    【讨论】:

      【解决方案2】:

      pthread_exit 终止一个线程。每the docs

      线程终止不会释放任何应用程序可见进程 资源,包括但不限于互斥锁和文件 描述符,也不执行任何进程级别的清理操作, 包括但不限于调用任何可能的 atexit() 例程 存在。

      另一方面,exit 确实这样做了。

      【讨论】:

        【解决方案3】:

        区别:

        pthread_exit():终止一个线程——不管它的工作是否完成 exit() 对整个进程执行正常的程序终止。

        【讨论】:

          【解决方案4】:

          线程是使用 pthread_create() 创建的。然后每个线程可以独立 使用 pthread_exit() 终止。 (如果任何线程调用 exit(),那么所有线程都会立即终止。)除非线程已被标记为分离(例如,通过调用 pthread_detach()),它必须由另一个线程使用 pthread_join() 加入,这 返回加入线程的终止状态。

          【讨论】:

            猜你喜欢
            • 2023-04-02
            • 2012-03-14
            • 2021-05-20
            • 2016-12-08
            • 2011-09-23
            • 1970-01-01
            • 1970-01-01
            • 2010-09-28
            • 1970-01-01
            相关资源
            最近更新 更多