有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Trycatchfinally中的java死锁

我现在是手机用户,所以无法提供密码。 我在一个try块中启动了3个线程。。(在try方法中,因为我使用的是缓冲区读取器?我还使用了一些不推荐的方法。这将确保死锁。 我的问题是为什么现在不执行finally块


共 (3) 个答案

  1. # 1 楼答案

    只有当方法从try块中出来时,才会执行finally块

    尝试>;捕获>;最后(始终)这是执行方法的方式

    主要使用Try-Catch-Finally来捕获异常死锁不是例外。 如果存在任何异常(当您使用缓冲读取器时出现Io异常),则只会执行finally和catch块。(TRY块处于死锁状态)

    finally块保证在try块之后运行(由#Elliott表示)

  2. # 2 楼答案

    如果在try块中死锁,finally块将不会运行,因为finally块保证在try块之后运行(try块不会结束)。打个比方,如果我提议在你从1数到无穷大后付给你100美元,我就永远不用付给你了(因为你不能在有限的时间内数到无穷大)。确保在所有位置都以相同的顺序获取和释放锁

  3. # 3 楼答案

    如果finally块正常完成或发生错误,将执行try块。如果在try块中有死锁,那么它将不会到达finally