java.lang.Runnable 源码分析

子接口:RunnableFuture<V>, RunnableScheduledFuture<V>

实现类:AsyncBoxView.ChildState, ForkJoinWorkerThread, FutureTask, RenderableImageProducer, SwingWorker, Thread, TimerTask.

有一个 void run() 方法,所有实现类必须实现这个方法。

使用场景:

  • 如果一个类的实例想被Thread执行, 那么这个类必须定义定义一个run方法,所有如果直接implements Runnable接口,则必须实现run方法。
  • 如果这个类不想是Thread的子类,而且想保持简单的形式,那么implements Runnable接口是很好的选择。
public class Bike implements Runnable {
    @Override
    public void run() {
        System.out.println("I am by biking");
    }

    public static void main(String[] args) {
        Bike mybike = new Bike();

        new Thread(mybike, "mybike").start();

        System.out.println("Main...");
    }
}