## Uses of Interface
com.sun.jdi.ThreadReference

- Packages that use ThreadReference
  Package | Description
  --- | ---
  com.sun.jdi | This is the core package of the Java Debug Interface (JDI), it defines mirrors for values, types, and the target VirtualMachine itself - as well bootstrapping facilities.
  com.sun.jdi.event | This package defines JDI events and event processing.
  com.sun.jdi.request | This package is used to request that a JDI event be sent under specified conditions.

- - ### Uses of ThreadReference in com.sun.jdi

    Methods in com.sun.jdi that return ThreadReference
    Modifier and Type | Method | Description
    --- | --- | ---
    `ThreadReference` | ObjectReference.`owningThread()` | Returns an `ThreadReference` for the thread, if any, which currently owns this object's monitor.
    `ThreadReference` | MonitorInfo.`thread()` | Returns a `ThreadReference` object for the thread that owns the monitor.
    `ThreadReference` | StackFrame.`thread()` | Returns the thread under which this frame's method is running.

    Methods in com.sun.jdi that return types with arguments of type ThreadReference
    Modifier and Type | Method | Description
    --- | --- | ---
    `List<ThreadReference>` | VirtualMachine.`allThreads()` | Returns a list of the currently running threads.
    `List<ThreadReference>` | ThreadGroupReference.`threads()` | Returns a List containing a `ThreadReference` for each live thread in this thread group.
    `List<ThreadReference>` | ObjectReference.`waitingThreads()` | Returns a List containing a `ThreadReference` for each thread currently waiting for this object's monitor.

    Methods in com.sun.jdi with parameters of type ThreadReference
    Modifier and Type | Method | Description
    --- | --- | ---
    `Value` | ClassType.`invokeMethod​(ThreadReference thread, Method method, List<? extends Value> arguments, int options)` | Invokes the specified static `Method` in the target VM.
    `default Value` | InterfaceType.`invokeMethod​(ThreadReference thread, Method method, List<? extends Value> arguments, int options)` | Invokes the specified static `Method` in the target VM.
    `Value` | ObjectReference.`invokeMethod​(ThreadReference thread, Method method, List<? extends Value> arguments, int options)` | Invokes the specified `Method` on this object in the target VM.
    `ObjectReference` | ClassType.`newInstance​(ThreadReference thread, Method method, List<? extends Value> arguments, int options)` | Constructs a new instance of this type, using the given constructor `Method` in the target VM.

  - ### Uses of ThreadReference in com.sun.jdi.event

    Methods in com.sun.jdi.event that return ThreadReference
    Modifier and Type | Method | Description
    --- | --- | ---
    `ThreadReference` | ClassPrepareEvent.`thread()` | Returns the thread in which this event has occurred.
    `ThreadReference` | LocatableEvent.`thread()` | Returns the thread in which this event has occurred.
    `ThreadReference` | MonitorContendedEnteredEvent.`thread()` | Returns the thread in which this event has occurred.
    `ThreadReference` | MonitorContendedEnterEvent.`thread()` | Returns the thread in which this event has occurred.
    `ThreadReference` | MonitorWaitedEvent.`thread()` | Returns the thread in which this event has occurred.
    `ThreadReference` | MonitorWaitEvent.`thread()` | Returns the thread in which monitor wait event has occurred.
    `ThreadReference` | ThreadDeathEvent.`thread()` | Returns the thread which is terminating.
    `ThreadReference` | ThreadStartEvent.`thread()` | Returns the thread which has started.
    `ThreadReference` | VMStartEvent.`thread()` | Returns the initial thread of the VM which has started.

  - ### Uses of ThreadReference in com.sun.jdi.request

    Methods in com.sun.jdi.request that return ThreadReference
    Modifier and Type | Method | Description
    --- | --- | ---
    `ThreadReference` | StepRequest.`thread()` |

    Methods in com.sun.jdi.request with parameters of type ThreadReference
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | BreakpointRequest.`addThreadFilter​(ThreadReference thread)` | Restricts the events generated by this request to those in the given thread.
    `void` | ExceptionRequest.`addThreadFilter​(ThreadReference thread)` | Restricts the events generated by this request to those in the given thread.
    `void` | MethodEntryRequest.`addThreadFilter​(ThreadReference thread)` | Restricts the events generated by this request to those in the given thread.
    `void` | MethodExitRequest.`addThreadFilter​(ThreadReference thread)` | Restricts the events generated by this request to those in the given thread.
    `void` | MonitorContendedEnteredRequest.`addThreadFilter​(ThreadReference thread)` | Restricts the events generated by this request to those in the given thread.
    `void` | MonitorContendedEnterRequest.`addThreadFilter​(ThreadReference thread)` | Restricts the events generated by this request to those in the given thread.
    `void` | MonitorWaitedRequest.`addThreadFilter​(ThreadReference thread)` | Restricts the events generated by this request to those in the given thread.
    `void` | MonitorWaitRequest.`addThreadFilter​(ThreadReference thread)` | Restricts the events generated by this request to those in the given thread.
    `void` | ThreadDeathRequest.`addThreadFilter​(ThreadReference thread)` | Restricts the events generated by this request to those in the given thread.
    `void` | ThreadStartRequest.`addThreadFilter​(ThreadReference thread)` | Restricts the events generated by this request to those in the given thread.
    `void` | WatchpointRequest.`addThreadFilter​(ThreadReference thread)` | Restricts the events generated by this request to those in the given thread.
    `StepRequest` | EventRequestManager.`createStepRequest​(ThreadReference thread, int size, int depth)` | Creates a new disabled `StepRequest`.