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