从java5开始,java提供了Callable接口,Callable接口提供了一个call方法可以作为线程的执行体,但call方法比run方法功能更加强大。主要体现在:
1.call方法可以有返回值;
2.call方法可以声明抛出异常。
因此我们完全可以提供一个Callable对象作为Thread的target,而该线程的线程执行体就是该Callable对象的call方法,问题...
分类:
其他好文 时间:
2014-08-28 18:12:45
阅读次数:
498
七.Callable和Future接口 ????C#可以把任意方法包装成线程执行体,包括那些有返回值的方法。Java也从jdk1.5开始,加入了Callable接口用来扩展Runnable接口的功能,Callable接口提供一个call()来增强Runna...
分类:
编程语言 时间:
2014-07-28 00:47:39
阅读次数:
438
1)Callable和Future Runnable封装一个异步运行的任务;可以当成一个没有任何参数和返回值的异步方法,Callable和 Runnable类似,但是它有返回值和参数。 Callable接口是一个参数化的类型,只有一个方法call。1 public interface Calla.....
分类:
编程语言 时间:
2014-07-22 23:09:32
阅读次数:
240
来自:http://www.cnblogs.com/taven/archive/2011/12/17/2291466.html 1 import java.util.concurrent.Callable; 2 3 import java.util.concurrent.ExecutorSe...
分类:
编程语言 时间:
2014-07-14 23:17:50
阅读次数:
290
接上文
遗留问题
对于Java多线程的理解,我以前仅仅局限于实现Runnable接口或者继承Thread类,然后重写run()方法,最后start()调用就算完事,但是一旦涉及死锁以及对共享资源的访问和随时监控线程的状态和执行顺序和线程返回值等就不行了。
Callable 和 Future 简介
Callable接口代表一段可以调用并返回结果的代码;Future接口表示是执行异步任务...
分类:
移动开发 时间:
2014-05-21 13:40:13
阅读次数:
371
在并发编程时,一般使用runnable,然后扔给线程池完事,这种情况下不需要线程的结果。所以run的返回值是void类型。如果是一个多线程协作程序,比如菲波拉切数列,1,1,2,3,5,8...使用多线程来计算。但后者需要前者的结果,就需要用callable接口了。callable用法和runnab...
分类:
其他好文 时间:
2014-05-12 20:54:47
阅读次数:
491
接着上篇中没写完的(http://my.oschina.net/bluesroot/blog/223453),上篇中讲到很多,为完成对一个目录的扫描的频繁的IO操作,我们从单线程到多线程,从CountDownLatch到BlockingQueue,中间不免各种Callable和Future和ExecutorService等等,虽然纷繁,中间有些不免麻烦,但是最终仍紧紧贴着我们的需求和多线程操作这一...
分类:
编程语言 时间:
2014-05-07 11:24:35
阅读次数:
643