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.
Methods
Modifier and Type | Method and Description |
---|---|
void |
run() When an object implementing interface |
Methods
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()
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html