2016-05-31 53 views

回答

1

一個Future並不代表運行的代碼,而是一個值,可能是要麼立即或將來可能(因此得名),同時可用w.r.t.線程(s)持有對它的引用。另外,它可以等待,並且等待線程將同時阻塞:這意味着它也可以作爲線程同步機制。

「可設定」的未來是其值不僅可以由實現類內部生成的值,而且也可以由外部線程設置,類似於promise

Quasar的SettableFuture可以允許所有類型的Quasar股(即,目前常規的Java線程以及Quasar光纖)在該值尚未可用時等待其阻止。

這意味着您可以在任何股線(線或光纖)中創建SettableFuture,例如,在異步回調的代碼中,它將設置它的值(執行時),但在等待其值時立即返回更多股線(線程或光纖)以阻塞。因此它是將異步API轉換爲阻塞(通常是高效的光纖阻塞)API的極好工具。這種模式也在blog post的「未來」小節中描述。

+0

很好描述。謝謝 –

相關問題