java - 虚假唤醒在实践中发生

标签 java windows multithreading

在运行 Java 1.7.0_09 的双核 Windows 2008 64 位服务器上进行 3000 个并发 session 和每秒大约 300 个事务的负载测试期间,我们在实践中观察到两个已确认的虚假唤醒实例,即退出其 wait() 方法的线程未收到通知且在等待超时到期之前。

在唤醒期间,机器 CPU 使用率低于 20%,并且有足够的内存可用。也没有观察到过多的垃圾收集。 幸运的是,我们最近引入的自旋锁能够捕获这种情况并继续 wait()

虚假唤醒现象记录在 java.lang.Object wait() 的 JavaDoc 中,但这是我第一次在实践中真正看到它。 这是 Windows 或 Java 中的错误吗?

最佳答案

因为它被记录在案,所以它不可能是一个错误。

关于java - 虚假唤醒在实践中发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14108155/

相关文章:

java - java中的定时器( Action 延迟)

java - 如何在 switch case 中使用枚举类

python - 打开外部代码时Rpy2解析错误

c# - 在多线程应用程序中正确使用 IOC(装饰器或拦截器?)

java - 闭包编译器选项

java - 使用可在 Applet 中使用的代码扩展 Java

windows - 如何从批处理文件中检查文件是否存在

windows - 从命令提示符提取 MS Excel 电子表格中单个单元格的值

java - java中的事件是在单独的线程中处理还是我必须自己做?

c - Linux,了解用于网络扩展的 setsockopt() PACKET_FANOUT