-
-
Save hozumi/3048d90328d3118583a4 to your computer and use it in GitHub Desktop.
bench
STMは共有資源に複数のスレッドが書き込みを試みて、共有資源が他のスレッドに既に更新されてれば失敗してやり直すという処理なので、逆に言えば、実行中のスレッドの中の必ず一つは書き込みに成功するということだと思います。
実行中のどの時間を見ても必ず書き込みに成功するスレッドが一ついるということはつまり、
原理的にはシングルスレッドと同じ時間で処理できることを意味していると思います。
シングルスレッドやロック(hash-bench)の時は使われていなかったコアが無駄な計算をするだけで、
処理にかかる時間が劇的に伸びるのはどうもよく理解出来ないです。
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
共有資源に高頻度で書き込む並列性のないスレッド間処理をするなら、同時実行できるのがシングルスレッドもしくは、共有しなくて済むような枠組みを考えた方が良さそうです。
適切に動作しないマルチスレッド アプリケーションの一般的なパターン
http://msdn.microsoft.com/ja-jp/library/ee329530.aspx