线程的创建的几种方式以及它们的区别
java中有三种创建多线程的方法,分别是实现runnable接口的run方法,继承Thread类并重写run方法,以及使用FutureTask。无论是哪种方法,它们都是通过Thread来处理的,
1 继承Thread类方式的实现:
在调用了.start()方法时,线程并没有真正的被启动,而是进入就绪状态,等到获取cpu执行资源的时候,该线程才会真正的被执行。一旦run方法执行完毕,该线程就会处于终止状态。
因为java不支持多继承,在使用继承Thread类来创建线程的时候,如果多个线程要执行同样任务的时候,就需要多份任务代码。因为任务没有与代码分离。
2 而在使用runnable则没有这个限制:
如图上所示,三个线程共用同一个任务代码,而无论是T类还是runnable接口,他们都有一个缺点,那就是方法没有返回值。
3 FutureTask: