在linux中,无论主线程如何终止,通过函数exit()或从main返回,整个进程都会在主线程终止时退出。如果主线程从 main() 返回,它将返回到名为 crt.o 或类似名称的“C 运行时”。在 crt.o 中,其 c 代码如下:exit(main(argc, argv)); exit() 最终会被主线程调用,
结果所有线程都终止了。
我的想法看起来对吗?
如果在crt.o中exit()被替换为void thread_exit(int)之类的线程终止函数,只能终止一个有退出状态的线程,crt.o的c源码好像是thread_exit(main(argc, argv)),当主线程终止时,其他线程是否仍然运行?