面试时,有人会问如何实现线程。 许多人可能会做出两种类型的回答:继承Thread类来实现Runnable接口。 很多人忽略了callable这种方式。 一些人可能知道callable,但callable和Runnable的区别在于callable具有可以抛出返回值和异常的特性,而Runnable则没有。
可以在jdk1.8帮助文档中查看Callable和Runnable之间的差异
1、可以有返回值
2、能抛出异常
3、方法不同的run ()/call ) )。
代码如下: package callable; import Java.util.concurrent.callable; import Java.util.concurrent.execution exception; import Java.util.concurrent.future task; publicclasscallabletest (publicstaticvoidmain (string [ ] args ) throws exception,interruptedexception )功能获取Callable返回值的get方法可能会将他屏蔽到最后,也可能会使用异步通信来处理system.out.println (future task.get )。 } classmythreadimplementscallablestring { overridepublicstringcall (} { system.out.println ) call ); return success; }