[1227] Re:VM間排他制御について
投稿者:(ぱ)こと管理人
2009/04/21 01:50:42
>以下が私の考える見えない排他制御です
すみません、いまいちよくわかりません。
まず前提として、山さんの案では、複数のVMが、別々のネイティブスレッドで
動作するんですよね? だとしたら、いずれにせよ共有の変数を読み書きする際は
きっちりスレッド間でロックの取り合いをしなければならないわけで、この案で
どこが簡素化できるのかがどうもよくわからないです。
>1.システム変数は1つのVMのみ読み書きが出来る、配布元VMとする。
また、この「システム変数」は、ユーザプログラムがこれを利用して同期を取るための
ものではなく、まさにユーザプログラムがデータとして共有したいものなんですよね?
だとすると、配列やオブジェクトのような参照型ではどうなるのでしょう。
int[] a = {1, 2, 3, 4};
という配列を共有したかったとして、
int[] tmp = a; // aを1回だけ読み出し
以後、tmp経由で配列aの中身は触り放題なわけですが、これでよいのでしょうか?
>もっと簡単にしてグローバルは1VM内でのみ有効であるとして、
>VM間変数と言う特殊な変数を作って、セマフォー処理をしてもいいと思う。
山さんの投稿を見て私が最初にイメージしたのはこれだったのですが…