原です。
In message "[ruby-list:14849] extension library for mutual exclusion"
on 99/06/07, Shugo Maeda <shugo / netlab.co.jp> writes:
|前田です。
|書いてみました。
出てしまいましたね。(^_^)
|件のコードに関してはThread::exclusiveよりも速くなったと思います:-)
では Thread::exclusive を C で書いたらどうなるんでしょう?
In [ruby-list:14840]
|> す。(Linux で。当社比。^^;)ということは、exclusive{} は、その部
|> 分だけではスケジュールを握っているけど、全体としては他のスレッド
|> に動く時間と機会を多く与えているわけですよね。
|
|うーん、Rubyのスレッドは時分割方式なので、IOがブロックしたりする
|わけではない単純計算のプログラムでは、並列度(じゃなくて平行度か)
|は低い方が速くなるんじゃないでしょうか。
それはそうですよね。占有するから速い。そこで速いのがいいなら
シングルスレッドで書けばいいじゃないかと思われそうです。しか
しスピードも速いし距離も短いならとにかく走ってもらいたいと思
いません?思わないのかあ。(^^;
大体 Ruby のマルチスレッドは細かい占有の処理の粒の数珠繋ぎと
考えられるので、その積み重ねの粒の一つとして(ちょっと大きめ
ではあるが) v=v+10 を並べちゃったらいいんじゃないか、という
発想なんですが。