Trycatchfinally中的java死锁
我现在是手机用户,所以无法提供密码。 我在一个try块中启动了3个线程。。(在try方法中,因为我使用的是缓冲区读取器?我还使用了一些不推荐的方法。这将确保死锁。 我的问题是为什么现在不执行finally块
你可以在下面搜索框中键入要查询的问题!
我现在是手机用户,所以无法提供密码。 我在一个try块中启动了3个线程。。(在try方法中,因为我使用的是缓冲区读取器?我还使用了一些不推荐的方法。这将确保死锁。 我的问题是为什么现在不执行finally块
# 1 楼答案
只有当方法从try块中出来时,才会执行finally块
尝试>;捕获>;最后(始终)这是执行方法的方式
主要使用Try-Catch-Finally来捕获异常死锁不是例外。 如果存在任何异常(当您使用缓冲读取器时出现Io异常),则只会执行finally和catch块。(TRY块处于死锁状态)
finally块保证在try块之后运行(由#Elliott表示)
# 2 楼答案
如果在try块中死锁,finally块将不会运行,因为finally块保证在try块之后运行(try块不会结束)。打个比方,如果我提议在你从1数到无穷大后付给你100美元,我就永远不用付给你了(因为你不能在有限的时间内数到无穷大)。确保在所有位置都以相同的顺序获取和释放锁
# 3 楼答案
如果
finally
块正常完成或发生错误,将执行try
块。如果在try
块中有死锁,那么它将不会到达finally
块