回答編集履歴
1
Task のスレッド間同期のオーバーヘッドについて追記。
answer
CHANGED
@@ -20,6 +20,7 @@
|
|
20
20
|
Task のワークスティーリングの説明
|
21
21
|
[https://blogs.msdn.microsoft.com/jennifer/2009/06/26/work-stealing-in-net-4-0/](https://blogs.msdn.microsoft.com/jennifer/2009/06/26/work-stealing-in-net-4-0/)
|
22
22
|
Local Queue と書いてあるが実際の動作はスタック。
|
23
|
+
Taskは終了待機(スレッド間同期)の機能がある分、オーバーヘッドが多い。ただ、ThreadPool を使っても結局自分でスレッド間同期のコードを書く必要があるので、全体としては変わらない。
|
23
24
|
|
24
25
|
■スループットとレイテンシ
|
25
26
|
スループットは単位時間にこなせるタスクの量(数)。レイテンシはタスクを依頼して結果が返ってくるまでの時間。ThreadPool がスループットとレイテンシのバランスが取れているのに対し、Task のデフォルト(ワークスティーリング有効)はスループット特化型でレイテンシは平均的に長く、不安定。
|