java - Java 中虚假唤醒的含义和危害?

标签 java multithreading concurrency

Java 中的虚假唤醒是什么意思?为什么它们如此危险?能举个例子解释一下吗?

最佳答案

JVM 可以唤醒正在等待的线程,而无需其他线程调用其 notify() 方法 - 所谓的“虚假唤醒”。

如果不考虑这种可能性,则可能会在未达到等待状态时继续处理,从而导致不正确的行为。

唤醒时正确的做法是首先检查线程正在等待的状态是否确实已达到,否则立即调用wait()返回等待

关于java - Java 中虚假唤醒的含义和危害?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17480049/

相关文章:

java - 如何将事件从我的 ActorRef 发送到所有使用 akka fsm 创建的子项?

java - 如何使用 @Configurable 结合 readResolve() 来注入(inject)依赖项

java - eclipse luna 中添加库到项目时出错

flutter - Dart Future。等待多个 future 并获得不同类型的结果

groovy - 为什么 DataFlow 变量只能分配一次

java - Spring JDBCTemplate 与 Hikari 数据源批量更新异步行为

c - 当线程释放它的资源

java - ConcurrentModificationException 的这种解决方案安全吗?

python - 当线程完成时通知主线程

android - Android SQLite 中的并发问题