java - 什么是 "Conventional Techniques"来避免死锁?

标签 java multithreading

我在 Java 规范中看到了以下声明。

Programs where threads hold (directly or indirectly) locks on multiple objects should use conventional techniques for deadlock avoidance, creating higher-level locking primitives that don't deadlock, if necessary.

那么,避免死锁的“常规技术”是什么?我对此不是很清楚(没有正确理解,需要解释)。

最佳答案

最常见的技术是以某种一致的、明确定义的顺序获取资源(锁)。

Brian Goetz 的以下文章可能会有所帮助:http://www.javaworld.com/javaworld/jw-10-2001/jw-1012-deadlock.html

它很旧,但很好地解释了问题。

关于java - 什么是 "Conventional Techniques"来避免死锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5155013/

相关文章:

java - 获取所选元素内的所有元素作为 Element Jsoup android 的数组

java - 如何配置 Eclipse 以默认创建 protected Java 方法而不是私有(private)方法?

java - 我可以同时使用默认构造函数和@UiConstructor吗?

java - Android中捕获线程中的所有异常

c++ - 使用可变数量的 std::thread 的引用问题

java - CouchDB Java 库由 Maven 下载,但不被 IntelliJ 识别

c# - 设置一次静态字段值并在所有其他线程中使用最新设置的值

python - 如何从 python 线程更新 QML ListView?

c++ - 如何在大函数内编写多线程函数?

c++ - 互斥体能否在不显式保护对象的情况下确保对象的线程可见性?