Future 模式

Posted seattle-xyt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Future 模式相关的知识,希望对你有一定的参考价值。

 
考慮這樣一個情況,使用者可能快速翻頁瀏覽文件中,而圖片檔案很大,如此在瀏覽到有圖片的頁數時,就會導致圖片的載入,因而造成使用者瀏覽文件時會有停頓 的現象,所以我們希望在文件開啟之後,仍有一個背景作業持續載入圖片,如此使用者在快速瀏覽頁面時,所造成的停頓可以獲得改善。
 
Future模式在請求發生時,會先產生一個Future物件給發出請求的客戶,而同時間,真正的目標物件之生成,由一個 新的執行緒持續進行(即 Worker Thread),真正的目標物件生成之後,將之設定至Future之中,而當客戶端真正需要目標物件時, 目標物件也已經準備好,可以讓客戶提取使用。 
技术图片
 
 
一個簡單的Java程式片段示範可能像是這樣:
 public Future request() {
    final Future future = new Future();
 
    new Thread() {
        public void run() {
            // 下面這個動作可能是耗時的
            RealSubject subject = new RealSubject();
            future.setRealSubject(subject);
        }
    }.start();
 
    return future;
 } 

以上是关于Future 模式的主要内容,如果未能解决你的问题,请参考以下文章

JDK 中Future模式使用

并行设计模式-- Future模式

Future模式模拟

多线程设计模式:第五篇 - Future模式和两阶段终止模式

多线程手写Future模式

Future 异步回调 大起底之 Java Future 与 Guava Future