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

问题描述:

如果多线程应用程序由exit(x)或由main返回 - 处理程序的执行顺序?boost :: thread_specific_ptr/cleanup vs atexit执行顺序

  1. 处理机atexit注册的
  2. pthread_key_create/thread_specific_ptr清理处理程序(所谓的析构函数)

或查看反之亦然?

谢谢。

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

如果多于一个的atexit函数已被不同的调用该函数指定,它们都以相反的顺序(即,指定的最后一个功能是第一个被执行时,作为堆在出口执行)。