LoginSignup
5
5

More than 5 years have passed since last update.

ノンブロッキングな特性のメモ

Last updated at Posted at 2015-05-25

並列処理とかみてて、定義がなんかややこしくなってきそうだったからメモ
http://doc.akka.io/docs/akka/2.3.11/general/terminology.html

英語の勉強も兼ねている。上のやつを日本語にしただけ。

Wait-Freedom

全ての処理が有限の処理時間で終了することが保証されているという特性。
絶対に処理をブロックされない綺麗で美しい最強のやつ。デッドロックが絶対に起こらない。
飢餓状態(starvation: 訳が正しいかわからん)にもならない。

Lock-Freedom

1つ1つは有限の実行時間で処理が終わる処理だけど、無数に呼ばれるような特性。
デッドロックにはならないけど、飢餓状態にならないことを保証するわけではない。

やったらすぐ終わるんだけど、優先度が高いタスクがすごい勢いで入ってきて、一向に終わらないというか始まらない。

みたいな感じだと理解。

Obstruction-Freedom

ある点を突破したら、後は有限時間の処理で終わるという特性。

casさえ成功すれば終わるんだけど、何回リトライしても成功しない。

みたいな感じだと理解。

Lock-FreedomとObstruction-Freedomの違い

Lock-FreedomとObstruction-Freedomの違いがよくわからないような気がするけど、Lock-Freedomが処理が始まってすらいないことで終わらないのに対して、Obstruction-Freedomは処理の途中で待っている感じがした。

Lock-Freedom
みんなの頑張り以上にタスクが積み上がってbacklogが溜まっていく

つまり、みんな働いている

Obstruction-Freedom
どうしても資料を印刷しないと進められないんだけど、何回コピー機を見に行っても誰かが使ってる

つまり、暇をもてあましている

みたいな感じだと理解。

5
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5