在Java语言中有两种创建线程的方法,一种是通过实现“Runnable”,另一种是通过扩展“thread”类。在我正在读的书中(赫伯特·斯奇尔特),书中写道,实现'Runnable‘接口更好,他们已经适时地提供了理由,但我不能理解。谁能解释一下为什么在java中有两种创建线程的方法,为什么实现接口是更好的解决方案?
发布于 2014-03-15 02:42:06
使用Runnable更好,特别是考虑到Java支持匿名临时类。从Thread继承是很麻烦的。
这本书有点过时了。还有第三种方法:使用Callable代替。这允许您指定异常并具有返回类型。
简而言之,您向executor提交一个Callable,后者将返回一个Future。然后,您可以使用该未来来检查线程的返回值。
发布于 2014-03-15 02:43:14
实现Runnable允许更松散的耦合,这是一个很好的设计模式。相关(如果不是重复):"implements Runnable" vs. "extends Thread"
发布于 2014-03-15 02:44:53
与extending.You相比,实现一个接口是一个很好的实践,它可以实现任意数量的接口,并且只能扩展一个class.This。
https://stackoverflow.com/questions/22413183
复制相似问题