1,继承Thread类(底层 Thread类也实现了 Runnable接口) class MyThread extends Thread 2,实现Runnable接口 class MyThread implements Runnable 3,(JDK1.5以后)实现Callable接口 4,使用线程池 面试题: 说说方式1与方式2的优缺点: 实现Runnable要好于继承Thread,原因: 1 实现的方式,解决单继承的局限性。 2 实现的方式针对于共享数据的情况,操作起来更方便 3 实现的方式可以做到代码和数据的分离。 说说Runnable与Callable接口的异同: 相同:都是函数式接口