Promise (Future) pattern

加速程式運算的其中一種方法是把程式裡耗時的部分切給multi-threads。平行運算降低程式執行所需要的時間。

Multi-threading的程式在維護跟troubleshooting的難度比single thread稍高。

如果asynchronous的程式碼有dependency,例如 :

Code snippet

int totalCount = countLongLongTime(new AsyncCallback(mainthreadCallback));

doSomethingElse();

output = doSomething(totalCount);

doSomething() 應該要等到所有 thread 都跑完 multithreadCallback function 之後才能執行。

Programmer可以很小心的sustain這段code,或是用Promise pattern來讓這段程式碼比較好sustain。

Java,C# 5.0,以及一些Javascript的library都有built-in的promise pattern。

C# 用await支援promise pattern。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s