在core java中,Thread 类是实实在在有的;而Task没有,但是这个概念却经常用到,并且与Thread经常混在一起。
所以,在这里,谈谈我对这两者之间的一些理解。
我认为:
1、Task就是商业逻辑,对于这个商业逻辑我们可以在一个Runable实例中的run()方法中定义,或者在Callable实例中的call()。
(至于他们两者的不同,可以参考我转载的另外一篇博文:Callable和Runnable)
2、Thread可以理解成实际工作的单元,是可以被重复使用的。这个在core java的api中是有的。
最后,允许我打一个不太恰当的比喻:
不知道大家有没去过订做家具?如果有的话,应该可以更加容易理解我的想法:
Thread就是一个家具工匠,Task就是客人自定义的设计图纸。
另外,如果还有疑问,不妨可以参考一下我与一些老外就这个问题的讨论:
what is the relationship of thread and task?