タイトルのまんまです。
外部からデータを受け取るときに、メモリ不足により処理しきれなくなった
オブジェクトのことを”到達不能オブジェクト”と言っているのでしょうか?
イメージがあまりわかなく、もやもやです。。。
誰かスッキリ!!させてください<(_ _)>
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
Python
1 words = ['cat', 'window', 'defenestrate'] 2 for w in words: 3 print(w, len(w))
for で出てくる w は、for 文(の中)でしかアクセスできません。
この for 文が終わった時点で、w に対してはアクセスできなくなります。
こういう「もう参照される方法のない」オブジェクトを到達不能オブジェクトとして扱い、
定期的、あるいはメモリ不足になったときなどに、この到達不能オブジェクトが占めている領域を開放するのが、基本的な gc の考え方です。
投稿2019/04/19 05:13
総合スコア13703
0
ざっくりした説明ですが。
python
1>>> a = [1,2,3] 2>>> a[1] 32 4>>> b = a[2] 5>>> a = a[0:1] 6>>> a[1] 7Traceback (most recent call last): 8 File "<stdin>", line 1, in <module> 9IndexError: list index out of range 10>>> b 113
a
を定義した直後であれば、 a[1]
とすれば 2
という値に到達できますが、
a
を更新してしまうと 2
という値に到達する方法がもうなくなりましたよね?
でも、メモリ上は領域を確保しています。これを到達不能オブジェクトと言います。
一方、a
からは参照できなくても b
という変数で参照が確保できている場合は到達可能です。
投稿2019/04/19 05:16
総合スコア6753
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/19 05:34
2019/04/19 05:40
2019/04/19 07:36
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/19 05:15
2019/04/19 06:02
2019/04/19 07:34
2019/04/19 08:37