黒田です。 > >まつもと ゆきひろです. > > > >一般にthreadとforkをまぜるのは良くないようです.とくに今回の > >ような場合,親と子で同時にthreadが動きますから,動作が予想し > >にくくなります. > > > >後は > > > > forkは重い/threadは軽い > > forkはメモリ空間を共有しない > > forkの切替えのタイミングは不正確/threadはもっと不正確 > > threadではスラッシングが起きない > > threadはDOSでも動く > > threadがなんらかの理由でブロックすると全体が止まる > > > >などの特徴を考えてどちらかを選んでください. > >thread にします。ありがとうございました。 その後ですが、 > > forkはメモリ空間を共有しない -おおざっぱに -- class Log #構造体定義もある ... end def session log = Log.new log.set構造体 ... end thread.start{ session() } - -- みたいなプログラムで、thread 間で log の構造体を共有してるよ うなのです。こう書けば共有しないような気がしたのですが、どう 書くのが正しいのでしょう? それから、 > > forkの切替えのタイミングは不正確/threadはもっと不正確 について。system(とっても重いelispプログラム) を呼ぶ thread が処理を奪ったままなので, 試しに(懲りずに)fork を狭んでみると うまく行きました。そんなもんなんでしょうか。 - -- 黒田 淳 (くろだ じゅん)