方法一:继承Thread类
方法二:实现Runnable接口
方法三:实现Callable接口
前两种方法需要重写run方法,第三种方法需要重写call方法。因为Java不允许多继承,允许实现多个接口,所以方法二比方法一灵活。方法三与方法二类似,但可以获得返回值,功能更强大。用Callable对象实例化一个FutureTask对象,FutureTask对象既可以像Runnable对象那样用来实例化一个线程,又能调用它的get方法来获得call方法的返回值。
本文介绍了Java中三种创建线程的方法:通过继承Thread类、实现Runnable接口以及实现Callable接口。对比了这三种方法的特点,并解释了它们之间的区别。特别强调了Callable接口相比其他两种方法的优势在于能够获取线程执行后的返回值。
方法一:继承Thread类
方法二:实现Runnable接口
方法三:实现Callable接口
前两种方法需要重写run方法,第三种方法需要重写call方法。因为Java不允许多继承,允许实现多个接口,所以方法二比方法一灵活。方法三与方法二类似,但可以获得返回值,功能更强大。用Callable对象实例化一个FutureTask对象,FutureTask对象既可以像Runnable对象那样用来实例化一个线程,又能调用它的get方法来获得call方法的返回值。

被折叠的 条评论
为什么被折叠?