提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
第一种:继承Thread类:
1.创建一个继承于Thread类的子类
2.重写Thread类的run() 将此线程执行的的操作声明在run()中
3.创建Thread类的子类的对象
4.通过此对象调用start()
代码示例:继承Thread类
第二种:实现Runnable接口:
1.创建一个实现了Runnable接口的类
2.实现类去实现Runnable中的抽象方法:run()
3.创建实现类的对象
4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象
5.通过Thread类的对象调用start()
代码示例:实现Runnable接口 第三种:实现Callable接口:
1.创建一个实现Callable的实现类
2.实现call方法,将此线程需要执行的操作声明在call()中
3.创建Callable接口实现类的对象
4.将Callable接口实现类的对象作为参数传递到FutureTask构造器中,创建FutureTask的对象
5.将FutureTask的对象作为参数传递到Thread类的构造器中,创建Thread对象,并调用start()方法
6.获取Callable中call方法中的返回值
代码示例:实现Callable接口
第四种:创建线程池:
1.提供指定线程数量的线程池
2.执行指定线程的操作,需要提供实现Runnable接口或Callable接口实现类的对象
代码示例:创建线程池