创建线程的方式:口诀:一继承两实现一线程池
1.继承Thread类,重写run()方法;调用start启动。
(注:Thread类支持 直接重写run方法,再调用start启动)
优缺点:
优点:编程简单
缺点:因为已经继承了Thread类,故无法继承其他类,所以不宜扩展。
2.因为Class Thread 实现了 Interface Runnable;故,我们也可以模仿Thread类,定义一个类 实现Runnable接口,然后重写run()方法,调用start()类启动。
注:java8以后由于引入了函数式接口,所以我们可以使用lambda表达式简化对Runnable接口实现;直接new Thread(),传入lambda表达式接口。
3.实现Callable接口:
Callable接口和Runable接口的区别?
- callable接口有返回值,runable接口没有
- callable接口可以抛出异常,但是runable接口不行
- runable是run()方法,callable是call()方法
4.线程池:
Executor与ThreadPoolExecutor()
Executor:
ThreadPoolExecutor():(常用)
ThreadPoolExecutor threadPool = new ThreadPoolExecutor().execute();