目标
VirtualMachine 可以在给定时间创建多个 Event 对象。例如,给定的 Location 可能有多个 BreakpointRequest ,或者您可能单步执行到与 BreakpointRequest 相同的位置。这些 Event 对象作为 EventSet 一起交付。为统一起见,EventSet 始终用于传递Event 个对象。 EventSets 由 EventQueue 提供。 EventSet 是不可修改的。
与事件集的发布相关联,目标 VM 中可能已发生挂起。这些暂停对应于 suspend policy 。为确保匹配恢复发生,建议在可能的情况下完成对带有 EventSet.resume() 的事件集的处理。
分组在 EventSet 中的事件在以下方面受到限制:
- 总是单例集:
- 仅适用于其他 VMDeathEvents:
- 仅与同一线程的其他 ThreadStartEvents:
- 仅与同一线程的其他 ThreadDeathEvents:
- 仅与同一类的其他 ClassPrepareEvents 一起使用:
- 仅与同一类的其他 ClassUnloadEvents 一起使用:
- 仅与其他 AccessWatchpointEvents 相同的字段访问:
- 仅与其他 ModificationWatchpointEvents 进行相同的字段修改:
- 仅针对同一异常发生的其他 ExceptionEvents:
- 仅与其他 MethodExitEvents 用于相同的方法退出:
- 仅与其他监视器争用同一监视器对象的输入事件:
- 监控竞争进入事件
- 仅与同一监视器对象的其他监视器争用输入事件:
- 监控竞争进入事件
- 仅与同一监视器对象的其他监视器等待事件:
- 监听等待事件
- 仅与同一监视器对象的其他监视器等待事件:
- 监控等待事件
- 仅与该组的其他成员在同一位置和同一线程中:
- 自从:
- 1.3
- 参见:
-
方法总结
在接口 java.util.Collection 中声明的方法
parallelStream, removeIf, stream, toArray在接口 com.sun.jdi.Mirror 中声明的方法
toString, virtualMachine
-
方法详情
-
suspendPolicy
int suspendPolicy()返回用于在该事件集的目标 VM 中挂起线程的策略。该策略是从每个事件请求的暂停策略中选择的;目标 VM 选择暂停最多线程的策略。目标 VM 根据该策略暂停线程,并在此处返回该策略。有关可能的策略值,请参阅EventRequest。在极少数情况下,如果在调试器系统线程中发生
ClassPrepareEvent,挂起策略可能与请求的值不同。有关详细信息,请参阅ClassPrepareEvent.thread()。- 返回:
-
suspendPolicy 是
SUSPEND_ALL、SUSPEND_EVENT_THREAD或SUSPEND_NONE。
-
eventIterator
EventIterator eventIterator()返回特定于Event对象的迭代器。 -
resume
void resume()恢复由此事件集挂起的线程。如果suspendPolicy()是EventRequest.SUSPEND_ALL,则调用此方法等同于VirtualMachine.resume()。如果挂起策略为EventRequest.SUSPEND_EVENT_THREAD,则对该方法的调用等效于事件线程的ThreadReference.resume()。否则,对此方法的调用是空操作。
-