boost :: thread_specific_ptr / cleanup vs atexit执行顺序

时间:2016-06-13 08:07:24

标签: c++ ssl pthreads

如果多线程应用程序由exit(x)或main的“return”终止 - 处理程序的执行顺序是什么?

  1. 由atexit注册的处理程序
  2. pthread_key_create / thread_specific_ptr清理处理程序(所谓的析构函数)
  3. 或反之亦然?

    谢谢。

1 个答案:

答案 0 :(得分:1)

来自http://www.cplusplus.com/reference/cstdlib/atexit

  

如果通过对此函数的不同调用指定了多个atexit函数,则它们都以相反的顺序作为堆栈执行(即指定的最后一个函数是在退出时首先执行的函数)。