我有一个使用多个线程的程序。据我了解,当线程 0 退出时,整个程序都会退出,而不管其他任何可能仍在运行的线程。
问题是,这些其他线程可能打开了文件。自然地,这包含在异常处理代码中,在出现问题时会干净地关闭文件。这也意味着如果我使用killThread
(通过 实现throwTo
),文件也应该在线程退出之前关闭。
我的问题是,如果我只是让线程 0 退出,而不试图停止其他线程,那么所有各种文件句柄都会很好地关闭吗?是否有任何缓冲输出被刷新?
简而言之,我可以直接退出,还是需要先手动杀死线程?