gpt4 book ai didi

multithreading - atexit 是否等待其他线程死亡?

转载 作者:行者123 更新时间:2023-12-03 12:45:38 24 4
gpt4 key购买 nike

用atexit()注册的函数是最后执行的函数吗?有没有可能此时其他线程还在运行?

最佳答案

Are the functions registered with atexit() the last functions to be executed?

atexit() 调用将在主线程执行完毕后在主线程中执行。除此之外,不作任何保证。

Is it possible that other threads at this time are still running?

是的,如果您没有采取措施停止其他线程并在 main() 返回之前加入它们。通常,您希望对所有线程进行显式的、受控的关闭,因为 C(或 C++)运行时不会为您执行此操作,即使在 main() 线程退出时让它们继续运行也会引入这种可能性他们将尝试访问 main() 已释放的资源作为其关闭序列的一部分,这将调用未定义的行为(通常是程序关闭期间偶尔出现的、不易重现的崩溃)

关于multithreading - atexit 是否等待其他线程死亡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36486857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com