本文最后更新于48 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
线程常用的创建方式有三种:
- 实现Runnable接口
- 实现Callable接口
- 继承Thread类
其中,实现Runnable接口和Callable接口的类只能当作一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还要通过Thread来调用。可以说任务时通过线程驱动从而执行的。
- 实现Runnable接口:首先通过RunnableThread类实现Runnable接口,然后重写run()方法,之后只需要把这个实现了run()方法的实例传到Thread类中就可以实现多线程。
- 实现Callable接口:与Runnable相比,Callable可以有返回值,返回值通过FutureTask进行包装。
- 继承Thread类:继承Thread类,并重写其中的run()方法
实现接口要比继承Thread类实现更好,因为Java不支持多重继承,继承了Thread类就不能继承其他类,但是可以实现多个接口。同时,类可能只是要求可执行就好,继承整个Thread类开销过大。