在eclipse中按下停止按钮时是否会调用finally()?

CBr*_*low 8 java eclipse multithreading printwriter

我确定这个问题之前已经被问过了,但是在谷歌搜索之后我找不到任何东西.

这是我的情况,我有多个线程写入文件,一个主线程创建一个打印编写器并处理创建文件并关闭try/catch循环中finally块内的print writer.当我在eclipse中运行应用程序时,我会按下stop/terminate按钮,文件没有写入任何内容.我想确保我在这里做的一切都是正确的,或者在执行终止时有更好的方法来处理关闭打印编写器.哎呀,如果有更好的方法来处理多个线程写入文件,我很欢迎这个建议(我现在对多线程编程非常糟糕).

Ser*_*Cat 2

只有很少的事实最终没有被执行。if 之一可以是:System.exit(0). Usingfinally假定finally 块中的语句始终被执行。

由于您的问题,请确保您的线程尚未执行您的finally块:确保在需要时使用同步 - 始终通过单元测试进行检查。