Uses of Interface java.lang.Runnable (Java Platform SE 8 )
Date: 2026-03-16

## Uses of Interface
java.lang.Runnable

- Packages that use Runnable
  Package | Description
  --- | ---
  java.awt | Contains all of the classes for creating user interfaces and for painting graphics and images.
  java.awt.event | Provides interfaces and classes for dealing with different types of events fired by AWT components.
  java.awt.image.renderable | Provides classes and interfaces for producing rendering-independent images.
  java.lang | Provides classes that are fundamental to the design of the Java programming language.
  java.util | Contains the collections framework, legacy collection classes, event model, date and time facilities, internationalization, and miscellaneous utility classes (a string tokenizer, a random-number generator, and a bit array).
  java.util.concurrent | Utility classes commonly useful in concurrent programming.
  java.util.stream | Classes to support functional-style operations on streams of elements, such as map-reduce transformations on collections.
  javax.net.ssl | Provides classes for the secure socket package.
  javax.swing | Provides a set of "lightweight" (all-Java language) components that, to the maximum degree possible, work the same on all platforms.
  javax.swing.text | Provides classes and interfaces that deal with editable and noneditable text components.

- - ### Uses of Runnable in java.awt

    Methods in java.awt with parameters of type Runnable
    Modifier and Type | Method and Description
    --- | ---
    `static void` | EventQueue.`invokeAndWait(Runnable runnable)` Causes `runnable` to have its `run` method called in the `dispatch thread` of `the system EventQueue`.
    `static void` | EventQueue.`invokeLater(Runnable runnable)` Causes `runnable` to have its `run` method called in the `dispatch thread` of `the system EventQueue`.

  - ### Uses of Runnable in java.awt.event

    Fields in java.awt.event declared as Runnable
    Modifier and Type | Field and Description
    --- | ---
    `protected Runnable` | InvocationEvent.`runnable` The Runnable whose run() method will be called.

    Constructors in java.awt.event with parameters of type Runnable
    Constructor and Description
    `InvocationEvent(Object source, int id, Runnable runnable, Object notifier, boolean catchThrowables)` Constructs an `InvocationEvent` with the specified source and ID which will execute the runnable's `run` method when dispatched.
    `InvocationEvent(Object source, Runnable runnable)` Constructs an `InvocationEvent` with the specified source which will execute the runnable's `run` method when dispatched.
    `InvocationEvent(Object source, Runnable runnable, Object notifier, boolean catchThrowables)` Constructs an `InvocationEvent` with the specified source which will execute the runnable's `run` method when dispatched.
    `InvocationEvent(Object source, Runnable runnable, Runnable listener, boolean catchThrowables)` Constructs an `InvocationEvent` with the specified source which will execute the runnable's `run` method when dispatched.

  - ### Uses of Runnable in java.awt.image.renderable

    Classes in java.awt.image.renderable that implement Runnable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `RenderableImageProducer` An adapter class that implements ImageProducer to allow the asynchronous production of a RenderableImage.

  - ### Uses of Runnable in java.lang

    Classes in java.lang that implement Runnable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Thread` A thread is a thread of execution in a program.

    Constructors in java.lang with parameters of type Runnable
    Constructor and Description
    `Thread(Runnable target)` Allocates a new `Thread` object.
    `Thread(Runnable target, String name)` Allocates a new `Thread` object.
    `Thread(ThreadGroup group, Runnable target)` Allocates a new `Thread` object.
    `Thread(ThreadGroup group, Runnable target, String name)` Allocates a new `Thread` object so that it has `target` as its run object, has the specified `name` as its name, and belongs to the thread group referred to by `group`.
    `Thread(ThreadGroup group, Runnable target, String name, long stackSize)` Allocates a new `Thread` object so that it has `target` as its run object, has the specified `name` as its name, and belongs to the thread group referred to by `group`, and has the specified stack size.

  - ### Uses of Runnable in java.util

    Classes in java.util that implement Runnable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `TimerTask` A task that can be scheduled for one-time or repeated execution by a Timer.

  - ### Uses of Runnable in java.util.concurrent

    Subinterfaces of Runnable in java.util.concurrent
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `RunnableFuture<V>` A `Future` that is `Runnable`.
    `interface` | `RunnableScheduledFuture<V>` A `ScheduledFuture` that is `Runnable`.

    Classes in java.util.concurrent that implement Runnable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ForkJoinWorkerThread` A thread managed by a `ForkJoinPool`, which executes `ForkJoinTask`s.
    `class` | `FutureTask<V>` A cancellable asynchronous computation.

    Methods in java.util.concurrent that return types with arguments of type Runnable
    Modifier and Type | Method and Description
    --- | ---
    `BlockingQueue<Runnable>` | ThreadPoolExecutor.`getQueue()` Returns the task queue used by this executor.
    `BlockingQueue<Runnable>` | ScheduledThreadPoolExecutor.`getQueue()` Returns the task queue used by this executor.
    `List<Runnable>` | ExecutorService.`shutdownNow()` Attempts to stop all actively executing tasks, halts the processing of waiting tasks, and returns a list of the tasks that were awaiting execution.
    `List<Runnable>` | ForkJoinPool.`shutdownNow()` Possibly attempts to cancel and/or stop all tasks, and reject all subsequently submitted tasks.
    `List<Runnable>` | ThreadPoolExecutor.`shutdownNow()` Attempts to stop all actively executing tasks, halts the processing of waiting tasks, and returns a list of the tasks that were awaiting execution.
    `List<Runnable>` | ScheduledThreadPoolExecutor.`shutdownNow()` Attempts to stop all actively executing tasks, halts the processing of waiting tasks, and returns a list of the tasks that were awaiting execution.

    Methods in java.util.concurrent with parameters of type Runnable
    Modifier and Type | Method and Description
    --- | ---
    `static ForkJoinTask<?>` | ForkJoinTask.`adapt(Runnable runnable)` Returns a new `ForkJoinTask` that performs the `run` method of the given `Runnable` as its action, and returns a null result upon `ForkJoinTask.join()`.
    `static <T> ForkJoinTask<T>` | ForkJoinTask.`adapt(Runnable runnable, T result)` Returns a new `ForkJoinTask` that performs the `run` method of the given `Runnable` as its action, and returns the given result upon `ForkJoinTask.join()`.
    `protected void` | ThreadPoolExecutor.`afterExecute(Runnable r, Throwable t)` Method invoked upon completion of execution of the given Runnable.
    `protected void` | ThreadPoolExecutor.`beforeExecute(Thread t, Runnable r)` Method invoked prior to executing the given Runnable in the given thread.
    `static Callable<Object>` | Executors.`callable(Runnable task)` Returns a `Callable` object that, when called, runs the given task and returns `null`.
    `static <T> Callable<T>` | Executors.`callable(Runnable task, T result)` Returns a `Callable` object that, when called, runs the given task and returns the given result.
    `protected <V> RunnableScheduledFuture<V>` | ScheduledThreadPoolExecutor.`decorateTask(Runnable runnable, RunnableScheduledFuture<V> task)` Modifies or replaces the task used to execute a runnable.
    `void` | ForkJoinPool.`execute(Runnable task)`
    `void` | Executor.`execute(Runnable command)` Executes the given command at some time in the future.
    `void` | ThreadPoolExecutor.`execute(Runnable command)` Executes the given task sometime in the future.
    `void` | ScheduledThreadPoolExecutor.`execute(Runnable command)` Executes `command` with zero required delay.
    `protected <T> RunnableFuture<T>` | ForkJoinPool.`newTaskFor(Runnable runnable, T value)`
    `protected <T> RunnableFuture<T>` | AbstractExecutorService.`newTaskFor(Runnable runnable, T value)` Returns a `RunnableFuture` for the given runnable and default value.
    `Thread` | ThreadFactory.`newThread(Runnable r)` Constructs a new `Thread`.
    `void` | RejectedExecutionHandler.`rejectedExecution(Runnable r, ThreadPoolExecutor executor)` Method that may be invoked by a `ThreadPoolExecutor` when `execute` cannot accept a task.
    `void` | ThreadPoolExecutor.CallerRunsPolicy.`rejectedExecution(Runnable r, ThreadPoolExecutor e)` Executes task r in the caller's thread, unless the executor has been shut down, in which case the task is discarded.
    `void` | ThreadPoolExecutor.AbortPolicy.`rejectedExecution(Runnable r, ThreadPoolExecutor e)` Always throws RejectedExecutionException.
    `void` | ThreadPoolExecutor.DiscardPolicy.`rejectedExecution(Runnable r, ThreadPoolExecutor e)` Does nothing, which has the effect of discarding task r.
    `void` | ThreadPoolExecutor.DiscardOldestPolicy.`rejectedExecution(Runnable r, ThreadPoolExecutor e)` Obtains and ignores the next task that the executor would otherwise execute, if one is immediately available, and then retries execution of task r, unless the executor is shut down, in which case task r is instead discarded.
    `boolean` | ThreadPoolExecutor.`remove(Runnable task)` Removes this task from the executor's internal queue if it is present, thus causing it not to be run if it has not already started.
    `CompletableFuture<Void>` | CompletableFuture.`runAfterBoth(CompletionStage<?> other, Runnable action)`
    `CompletionStage<Void>` | CompletionStage.`runAfterBoth(CompletionStage<?> other, Runnable action)` Returns a new CompletionStage that, when this and the other given stage both complete normally, executes the given action.
    `CompletableFuture<Void>` | CompletableFuture.`runAfterBothAsync(CompletionStage<?> other, Runnable action)`
    `CompletionStage<Void>` | CompletionStage.`runAfterBothAsync(CompletionStage<?> other, Runnable action)` Returns a new CompletionStage that, when this and the other given stage complete normally, executes the given action using this stage's default asynchronous execution facility.
    `CompletableFuture<Void>` | CompletableFuture.`runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)`
    `CompletionStage<Void>` | CompletionStage.`runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)` Returns a new CompletionStage that, when this and the other given stage complete normally, executes the given action using the supplied executor.
    `CompletableFuture<Void>` | CompletableFuture.`runAfterEither(CompletionStage<?> other, Runnable action)`
    `CompletionStage<Void>` | CompletionStage.`runAfterEither(CompletionStage<?> other, Runnable action)` Returns a new CompletionStage that, when either this or the other given stage complete normally, executes the given action.
    `CompletableFuture<Void>` | CompletableFuture.`runAfterEitherAsync(CompletionStage<?> other, Runnable action)`
    `CompletionStage<Void>` | CompletionStage.`runAfterEitherAsync(CompletionStage<?> other, Runnable action)` Returns a new CompletionStage that, when either this or the other given stage complete normally, executes the given action using this stage's default asynchronous execution facility.
    `CompletableFuture<Void>` | CompletableFuture.`runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)`
    `CompletionStage<Void>` | CompletionStage.`runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)` Returns a new CompletionStage that, when either this or the other given stage complete normally, executes the given action using the supplied executor.
    `static CompletableFuture<Void>` | CompletableFuture.`runAsync(Runnable runnable)` Returns a new CompletableFuture that is asynchronously completed by a task running in the `ForkJoinPool.commonPool()` after it runs the given action.
    `static CompletableFuture<Void>` | CompletableFuture.`runAsync(Runnable runnable, Executor executor)` Returns a new CompletableFuture that is asynchronously completed by a task running in the given executor after it runs the given action.
    `ScheduledFuture<?>` | ScheduledExecutorService.`schedule(Runnable command, long delay, TimeUnit unit)` Creates and executes a one-shot action that becomes enabled after the given delay.
    `ScheduledFuture<?>` | ScheduledThreadPoolExecutor.`schedule(Runnable command, long delay, TimeUnit unit)`
    `ScheduledFuture<?>` | ScheduledExecutorService.`scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)` Creates and executes a periodic action that becomes enabled first after the given initial delay, and subsequently with the given period; that is executions will commence after `initialDelay` then `initialDelay+period`, then `initialDelay + 2 * period`, and so on.
    `ScheduledFuture<?>` | ScheduledThreadPoolExecutor.`scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)`
    `ScheduledFuture<?>` | ScheduledExecutorService.`scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)` Creates and executes a periodic action that becomes enabled first after the given initial delay, and subsequently with the given delay between the termination of one execution and the commencement of the next.
    `ScheduledFuture<?>` | ScheduledThreadPoolExecutor.`scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)`
    `Future<?>` | ExecutorService.`submit(Runnable task)` Submits a Runnable task for execution and returns a Future representing that task.
    `ForkJoinTask<?>` | ForkJoinPool.`submit(Runnable task)`
    `Future<?>` | AbstractExecutorService.`submit(Runnable task)`
    `Future<?>` | ScheduledThreadPoolExecutor.`submit(Runnable task)`
    `<T> Future<T>` | ExecutorService.`submit(Runnable task, T result)` Submits a Runnable task for execution and returns a Future representing that task.
    `<T> ForkJoinTask<T>` | ForkJoinPool.`submit(Runnable task, T result)`
    `<T> Future<T>` | AbstractExecutorService.`submit(Runnable task, T result)`
    `<T> Future<T>` | ScheduledThreadPoolExecutor.`submit(Runnable task, T result)`
    `Future<V>` | CompletionService.`submit(Runnable task, V result)` Submits a Runnable task for execution and returns a Future representing that task.
    `Future<V>` | ExecutorCompletionService.`submit(Runnable task, V result)`
    `CompletableFuture<Void>` | CompletableFuture.`thenRun(Runnable action)`
    `CompletionStage<Void>` | CompletionStage.`thenRun(Runnable action)` Returns a new CompletionStage that, when this stage completes normally, executes the given action.
    `CompletableFuture<Void>` | CompletableFuture.`thenRunAsync(Runnable action)`
    `CompletionStage<Void>` | CompletionStage.`thenRunAsync(Runnable action)` Returns a new CompletionStage that, when this stage completes normally, executes the given action using this stage's default asynchronous execution facility.
    `CompletableFuture<Void>` | CompletableFuture.`thenRunAsync(Runnable action, Executor executor)`
    `CompletionStage<Void>` | CompletionStage.`thenRunAsync(Runnable action, Executor executor)` Returns a new CompletionStage that, when this stage completes normally, executes the given action using the supplied Executor.

    Constructors in java.util.concurrent with parameters of type Runnable
    Constructor and Description
    `CyclicBarrier(int parties, Runnable barrierAction)` Creates a new `CyclicBarrier` that will trip when the given number of parties (threads) are waiting upon it, and which will execute the given barrier action when the barrier is tripped, performed by the last thread entering the barrier.
    `FutureTask(Runnable runnable, V result)` Creates a `FutureTask` that will, upon running, execute the given `Runnable`, and arrange that `get` will return the given result on successful completion.

    Constructor parameters in java.util.concurrent with type arguments of type Runnable
    Constructor and Description
    `ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue)` Creates a new `ThreadPoolExecutor` with the given initial parameters and default thread factory and rejected execution handler.
    `ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, RejectedExecutionHandler handler)` Creates a new `ThreadPoolExecutor` with the given initial parameters and default thread factory.
    `ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory)` Creates a new `ThreadPoolExecutor` with the given initial parameters and default rejected execution handler.
    `ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler)` Creates a new `ThreadPoolExecutor` with the given initial parameters.

  - ### Uses of Runnable in java.util.stream

    Methods in java.util.stream with parameters of type Runnable
    Modifier and Type | Method and Description
    --- | ---
    `S` | BaseStream.`onClose(Runnable closeHandler)` Returns an equivalent stream with an additional close handler.

  - ### Uses of Runnable in javax.net.ssl

    Methods in javax.net.ssl that return Runnable
    Modifier and Type | Method and Description
    --- | ---
    `abstract Runnable` | SSLEngine.`getDelegatedTask()` Returns a delegated `Runnable` task for this `SSLEngine`.

  - ### Uses of Runnable in javax.swing

    Classes in javax.swing that implement Runnable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `SwingWorker<T,V>` An abstract class to perform lengthy GUI-interaction tasks in a background thread.

    Methods in javax.swing with parameters of type Runnable
    Modifier and Type | Method and Description
    --- | ---
    `static void` | SwingUtilities.`invokeAndWait(Runnable doRun)` Causes `doRun.run()` to be executed synchronously on the AWT event dispatching thread.
    `static void` | SwingUtilities.`invokeLater(Runnable doRun)` Causes doRun.run() to be executed asynchronously on the AWT event dispatching thread.

  - ### Uses of Runnable in javax.swing.text

    Classes in javax.swing.text that implement Runnable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AsyncBoxView.ChildState` A record representing the layout state of a child view.

    Methods in javax.swing.text that return Runnable
    Modifier and Type | Method and Description
    --- | ---
    `protected Runnable` | LayoutQueue.`waitForWork()` Used by the worker thread to get a new task to execute

    Methods in javax.swing.text with parameters of type Runnable
    Modifier and Type | Method and Description
    --- | ---
    `void` | LayoutQueue.`addTask(Runnable task)` Add a task that is not needed immediately because the results are not believed to be visible.
    `void` | Document.`render(Runnable r)` Allows the model to be safely rendered in the presence of concurrency, if the model supports being updated asynchronously.
    `void` | AbstractDocument.`render(Runnable r)` This allows the model to be safely rendered in the presence of currency, if the model supports being updated asynchronously.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.