java有三种多线程创建方式:
1:继承Thread类;
(1)定义一个Thread类的子类,并实现Run方法
(2)创建该子类的实例对象
(2)调查该实例对象的start方法
2.实现Runable接口
(1)定义一个Runable接口的实现类,并实现Run方法
(2)创建该Runable实现类的对象,并将该对象作为target传给Thread类
(3)调用Thread类对象的start方法,实际执行的是上面target对象的run方法
3.实现Callable接口(该方式有两种执行方式)
方式一:
(1)定义一个Callable接口的实现类,并实现call方法,注意该接口有返回值
(2)创建一个Callable接口实现类的实例对象,并使用FutureTask类来包装该对象,该FutureTask类的对象包装了call方法的返回值
(3)将上述FutureTask对象的实例作为target传给Thread类,调用Thread类对象的start方法启动线程
(4)通过FutureTask类对象实例的get方式获取返回值
方式二:
(1)通过某一个线程池类创建一个线程池对象
(2)定义一个Callable接口的实现类,并实现call方法,注意该接口有返回值
(3)调用线程池对象的submit方式,并用Future<T>接收该返回时