一、线程创建的方式有四种
1、继承Thread类
2、实现Runable接口
3、实现Callable接口
4、线程池创建线程
二、创建线程Runable和Callable有什么区别?
1、Runable创建线程没有返回值
2、Callable创建线程有返回值,是个泛型,配合Future和Futruetask来获取异步执行的结果。
3、Calable可以抛出异常Runable不能抛出异常只能内部消化
三、调用run方法和start方法有什么区别?
start是一个线程的开启,而一个线程实例只能在同一时刻开启一个
run方法是线程的任务,相当于普通的方法调用并不会开启线程