Dead Lock
Menuさまざまな言語で書いたロックをテストするプログラムがある。
どれか一つの言語を選び、デッドロックする例と、それを避ける例を記述せよ。
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() を使うらしいです...