1、继承Thread类,重写run方法,使用start方法进行启动线程
2、实现runnable接口,重写run方法,执行现场需要丢入runnable接口实现类,调用start启动线程
好处:避免单继承的局限性,方便一个对象被多个线程使用
3、实现callable接口
- 需要返回值类型
- 重写call方法,需要抛出异常
- 创建目标对象
- 创建执行服务:ExecutorService ser = Executors.newFixedThreadPool(1);
- 提交执行:Future result1=ser.submit(t1);
- boolean r1=result1.get()
- 关闭服务:ser.shutdownNow();
4、将文件路径下载到本地的jar包:commons-io-2.6.jar