我可以假設SettableFuture
在異步代碼中作爲Fiber
嗎(應該假定爲ForkJoinTask
)?我可以假設SettableFuture作爲光纖的類星體嗎?
Quasar SettableFuture可以阻擋線程以外的光纖。
SettableFuture API
Parallel Universe Comsat Documentation
我可以假設SettableFuture
在異步代碼中作爲Fiber
嗎(應該假定爲ForkJoinTask
)?我可以假設SettableFuture作爲光纖的類星體嗎?
Quasar SettableFuture可以阻擋線程以外的光纖。
SettableFuture API
Parallel Universe Comsat Documentation
一個Future並不代表運行的代碼,而是一個值,可能是要麼立即或將來可能(因此得名),同時可用w.r.t.線程(s)持有對它的引用。另外,它可以等待,並且等待線程將同時阻塞:這意味着它也可以作爲線程同步機制。
「可設定」的未來是其值不僅可以由實現類內部生成的值,而且也可以由外部線程設置,類似於promise。
Quasar的SettableFuture可以允許所有類型的Quasar股(即,目前常規的Java線程以及Quasar光纖)在該值尚未可用時等待其阻止。
這意味着您可以在任何股線(線或光纖)中創建SettableFuture
,例如,在異步回調的代碼中,它將設置它的值(執行時),但在等待其值時立即返回更多股線(線程或光纖)以阻塞。因此它是將異步API轉換爲阻塞(通常是高效的光纖阻塞)API的極好工具。這種模式也在blog post的「未來」小節中描述。
很好描述。謝謝 –