-title: Dead Lock
さまざまな言語で書いたロックをテストするプログラムがある。
どれか一つの言語を選び、デッドロックする例と、それを避ける例を記述せよ。
--CまたはPerl
- flock_test.c
- flock_test.pl
これらを用いて、この授業のデッドロックを2相ロックで再現してみよ。ま
た、2相ロックでない場合に矛盾が生じる例を示せ。
(注) sleep などを使わないとうまくdead lock しないことがある。
二人でおなじようにアクセスするのではdead lockしない。
--Java
Java のsyncrhonized method を用いて、2相ロックでのthread の dead lockが起きる可能性がある
テストプログラムを書け。
正しいプログラムがdead lockしないことをJava PathFinderを用いて確認せよ。
--Scala
同様なことをScala で記述せよ
--Erlang
同様なことをErlang で記述せよ
--go
同様なことをgo で記述せよ
runtime.cas() を使うらしいです...