加速程式運算的其中一種方法是把程式裡耗時的部分切給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。