dポイントプレゼントキャンペーン実施中!

参照カウントについて質問で
”単純な実装"では、共有オブジェクトの廃棄は最後に参照解除したスレッドで行われます。一斉に解放される場合、最後に参照されたスレッドが重くなります。とは、なぜ最後に参照されるとスレッドが重くなるのでしょうか?
また、"単純な実装"では、カウンタが0になったら、"自分で自分を"削除します。
この”自分で自分を"というところがポイントです。
何か、使われている変数を監視しているスレッドが存在して、
それが、カウントの値をチェックし、0であったら削除する
(これがGCですね)
とは違います。
とは何が違うのでしょうか?もしかして"単純な実装"は自分で自分を破棄してGCでは別の関数か何かで削除しているということでしょうか
あとそれぞれのスレッドが固有のオブジェクトを持っている場合、
"単純な実装"では
スレッドごとにオブジェクトの破壊コードが実行されることになります。これは破棄されるときのことをいっているのでしょうか?

A 回答 (3件)

>回答ありがとうございます。

なんに使うのかはいまいちわかりません。何か例があればよいのですが・・・そうですね。よいアドバイスありがとうございました。

そう言う事なら手を出さないほうが良いです。
mallocを使っていて困る時が来ると思うので、その時にガベージコレクションってなんで必要なんだろうって分ると思います。
ただし、勝手に開放するので厳密にCPUの使用率を制御したいときはじゃま物です。特にゲームの場合。
ゲームは参照カウントでは無い独自のガベージコレクションを実装している可能性が高いと思います。そのアルゴリズムは必要に応じて実装するので、こうしてると言えるものがありませんが、いろんなアルゴリズムやメモリ管理の仕組みを勉強してください。
    • good
    • 0

>一斉に解放される場合、最後に参照されたスレッドが重くなります。



お願いですから、許してください。
”間違えました”と謝っているのですから。。。。

ホントに、ほんとにお願いです。
”最後に参照された" ==> "最後に参照解除した"
ということの誤りなのですよ!!!!!!

ほんとに、重ね重ね、申し訳ありません。
許してください
    • good
    • 0
この回答へのお礼

こちらこそ申し訳ありません。
コピペしたので間違えてあるのを忘れてました。
一斉に解放される場合、最後に最後に参照解除したスレッドが重くなります。の間違いでした。

お礼日時:2009/04/27 20:27

前質問へのリンクを張ってもらわないと何のことか理解できないので注意してください。


http://okwave.jp/qa4906413.html

それを答えたのは私ではありませんが今言えるのは、「参照カウント」にしても「ガベージ・コレクト」にしても経験と知識の不足が理解を妨げてます。勉強熱心なのは感心しますが、そんなに何でも手を広げると本筋を見失いますよ。とりあえずは今の知識レベルでは手を出すべきではないと言わせてもらいます。

ガベージコレクトとか参照カウントをなんに使うつもりで調べてるのか教えてもらえれば現実的な実装方法などを紹介できると思います。場合によっては必要すらないかもしれません。
単に知りたいだけって話なら、ほかの事をもっと勉強すれば分かるようになるから「今は手を出すな」です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。なんに使うのかはいまいちわかりません。何か例があればよいのですが・・・そうですね。よいアドバイスありがとうございました。

お礼日時:2009/04/28 07:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!