Java:使用Callable建立线程
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。 | ||
Runnable接口定义的run()方法不返回任何值(void),如果希望线程任务执行完返回值,可使用Callable接口。
1.Callable 接口
<<interface>>Callable.java
具体的使用类似于Runnable接口,只不过一个是override run()方法,一个是orverride call()方法。
2.应用过程分析
首先,使用类Exectors创建一个线程池。返回的实例通过接口ExectorService的submit方法提交线程。它会将所有的返回结果存储为Future接口的实例。
2.1
ExectorService.submit()方法
-<T> Future<T>
submit(Callable<T> task)
提交一个返回值的任务用于执行,返回一个表示任务的未决结果的 Future。该 Future 的 get 方法在成功完成时将会返回该任务的结果。
-参数: task - 要提交的任务
-返回:
表示任务等待完成的 Future
2.2 Future 接口
-public interface Future<V>
Future 表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果。计算完成后只能使用 get 方法来获取结果,如有必要,计算完成前可以阻塞此方法。
3.应用实例
下面的线程实现Callable接口,每次返回一个String,表示线程运行结束。
MyThread.java
结果:
Create Thread-0
Create Thread-1
Create Thread-2
Create Thread-3
Create Thread-4
Thread-0 finish
Thread-1 finish
Thread-2 finish
Thread-3 finish
Thread-4 finish 本文出自 “子 孑” 博客,转载请与作者联系! 本文出自 51CTO.COM技术博客 |
附件下载:
MyThread.java
MyThread.java


zhangjunhd
博客统计信息
热门文章
最新评论
友情链接


