继承Thread类,实现runnable接口,(前两种无返回值),使用ExecutorService 、callable、Future,实现有返回结果的多线程
Thread本质也是实现一个runnable接口的实例,启动线程的方法为通过Thread类的Start()方法,start方法是一个native方法,启动一个新线程执行run()方法。实现多线程,继承Thread,复写run()方法,即能实现自己的run()方法。
实现Runnable接口,如果自己的类已经继承了一个类就无法继承Thread,此时就必须实现runnable接口。
启动:先实例化一个Thread,并传入自己的myThread实例
使用ExecutorService、callable、Future实现有返回结果的多线程
三者都属于Executor框架的功能类。jdk1.5的新特性
可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口。执行Callable任务后,可以获取一个Future的对象,在该对象上调用get就可以获取到Callable任务返回的Object了,再结合线程池接口ExecutorService就可以实现传说中有返回结果的多线程了