teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

Task のスレッド間同期のオーバーヘッドについて追記。

2017/07/11 23:03

投稿

退会済みユーザー
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 のデフォルト(ワークスティーリング有効)はスループット特化型でレイテンシは平均的に長く、不安定。