指定された時間にターゲット
VirtualMachine
によっていくつかのEvent
オブジェクトが作成されることがあります。 たとえば、指定されたLocation
に複数のBreakpointRequest
があったり、BreakpointRequestと同じ位置までステップ実行したりすることがあります。 これらのEvent
オブジェクトは、EventSetとして一緒に送信されます。 一貫性のために、Event
オブジェクトを送信するときには常にEventSetが使用されます。 EventSetは、EventQueue
によって送信されます。 EventSetは変更できません。
イベント・セットの発行と関連して、ターゲットVM内で中断が発生する場合があります。 これらの中断は、suspend policy
に対応しています。 対応する再開が確実に発生するように、できるかぎりEventSet.resume()
を使ってイベント・セットの処理を完了することをお勧めします。
EventSet内でグループ化されているイベントには、次の制限が適用されます。
- 常にSingletonセット
- ほかのVMDeathEventとのみ
- 同じスレッドのほかのThreadStartEventとのみ
- 同じスレッドのほかのThreadDeathEventとのみ
- 同じクラスのほかのClassPrepareEventとのみ
- 同じクラスのほかのClassUnloadEventとのみ
- 同じフィールド・アクセスのほかのAccessWatchpointEventとのみ
- 同じフィールド変更のほかのModificationWatchpointEventとのみ
- 同じ例外発生に対して他のExceptionEventsを使用する場合のみ:
- 同じメソッド終了のほかのMethodExitEventとのみ
- 同一モニター・オブジェクトのMonitor contended enterイベントとのみ一緒にされる:
- Monitor Contended Enterイベント
- 同一モニター・オブジェクトのMonitor contended enteredイベントとのみ一緒にされる:
- Monitor Contended Enteredイベント
- 同一モニター・オブジェクトのモニター待機イベントとのみ一緒にされる:
- モニター待機イベント
- 同一モニター・オブジェクトのモニター待機終了イベントとのみ一緒にされる:
- モニター待機終了イベント
- 同一位置および同一スレッド内の、このグループのほかのメンバーとのみ一緒にされる:
- 導入されたバージョン:
- 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()
を参照してください。- 戻り値:
SUSPEND_ALL
、SUSPEND_EVENT_THREAD
、またはSUSPEND_NONE
のいずれかのsuspendPolicy。
-
eventIterator
EventIterator eventIterator()Event
オブジェクトに固有のイテレータを返します。 -
resume
void resume()このイベント・セットによって中断されたスレッドを再開します。suspendPolicy()
がEventRequest.SUSPEND_ALL
の場合、このメソッドの呼出しはVirtualMachine.resume()
と同じです。 中断ポリシーがEventRequest.SUSPEND_EVENT_THREAD
の場合、このメソッドの呼出しはイベント・スレッドに対するThreadReference.resume()
と同じです。 そうでない場合は、このメソッドへの呼出しは無操作になります。
-