Runnable (Java SE 11 & JDK 11 )
Keywords: java.lang.Runnable interface

Module java.base
Package java.lang

## Interface Runnable

- All Known Subinterfaces:
    `RunnableFuture<V>`, `RunnableScheduledFuture<V>`
  All Known Implementing Classes:
    `AsyncBoxView.ChildState`, `ForkJoinWorkerThread`, `FutureTask`, `RenderableImageProducer`, `SwingWorker`, `Thread`, `TimerTask`
  Functional Interface:
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

      @FunctionalInterface
      public interface Runnable

  The `Runnable` interface should be implemented by any class whose instances are intended to be executed by a thread. The class must define a method of no arguments called `run`.

  This interface is designed to provide a common protocol for objects that wish to execute code while they are active. For example, `Runnable` is implemented by class `Thread`. Being active simply means that a thread has been started and has not yet been stopped.

  In addition, `Runnable` provides the means for a class to be active while not subclassing `Thread`. A class that implements `Runnable` can run without subclassing `Thread` by instantiating a `Thread` instance and passing itself in as the target. In most cases, the `Runnable` interface should be used if you are only planning to override the `run()` method and no other `Thread` methods. This is important because classes should not be subclassed unless the programmer intends on modifying or enhancing the fundamental behavior of the class.

  Since:
    1.0
  See Also:
    `Thread`, `Callable`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `run()` | When an object implementing interface `Runnable` is used to create a thread, starting the thread causes the object's `run` method to be called in that separately executing thread.

- - ### Method Detail

    - #### run

          void run()

      When an object implementing interface `Runnable` is used to create a thread, starting the thread causes the object's `run` method to be called in that separately executing thread.

      The general contract of the method `run` is that it may take any action whatsoever.

      See Also:
        `Thread.run()`