Future异步计算

来源:互联网 发布:tumblr是什么软件 编辑:程序博客网 时间:2024/05/18 12:34

java下的Future异步计算

异步计算到底是什么啊??

 

" 同步和异步仅仅是关于所关注的消息如何通知的机制,而不是处理消息的机制. 同步的情况下,是由处理消息者自己去等待消息是否被触发,而异步的情况下是由触发机制来通知处理消息者" 这个理论性太强了,就我的理解,异步计算就是在执行一项计算式时可以执行另一个计算式。待会再和同学去讨论一下。

 

关于Future异步计算的小例子

 

目的:查找目录下,文件内容中包括关键字的文件数目

 

主要的类和技术:Callable接口、Future接口、FutureTask类(实现了Runnable接口,Future接口),异步计算

 

总结: 1.Future表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果

          2.Callable接口,与Runnable接口类似,但是不能作为形参构造一个线程,but通过默认呢调用call方法最大的功能是能够返回一个值

          3.FutureTask类 实现了Runnable接口,Future接口,因此可以作为形参来构造线程对象

          4.思维风暴啊,设计的真的是不错呀(主要说一下在call方法中的第一个for语句)

              a.用一个数组列表来存储经过一步运算后的结果(也就是Future对象),这是一个亮点

              b.构造一个MathCounter对象(实现了Callable接口的类),通过MathCounter对象构造FutureTask对象,将FutureTask对象加入到数组列表中

              c.启动一个线程,线程的参数是FuturTask对象

         5.Future对象与常规不同的一个地方是每一次对get的调用都会发生阻塞知道结果可获得为止,如下

                    

 

 

代码一 (主要)

 

 

 


 

 代码二(次要的测试方法)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

原创粉丝点击