方法一:
1、extends Thread类
2、重现run方法
3、使用.start()方法启用多线程
不建议使用,避免oop单继承局限性
方法二:
1、类实现Runnable接口
2、重写run方法
3、通过创建线程对象,通过线程对象开启线程
new Thread (Runnnable thread).start()
建议使用:避免了单继承局限性,灵活方便,方便同一个对象被多个线程使用
方法三:
1、实现 Callable接口,需要返回值类型
2、重写call()方法,需要抛出异常
3、创建目标对象
4、创建执行服务:
ExecutorsService ser = Executors.newFixedThreadPool(3);
5、提交执行
ser.submit();
获取结果
.get();
6、关闭服务
ser.shutdown();
优点:可以获取返回值,可以抛出异常