1

Pythonで作成したスレッドの参照を保持していない場合、それは悪いことthreading.Thread(target=worker_method)ですか?ガベージコレクションがアプリケーションの安定性に影響を与える何かをする可能性はありますか?

4

1 に答える 1

1

スレッドは関係なく実行を続けますが、欠点は、スレッドと通信するためのハンドルがもうないことです。

簡単なテストでは、スレッドオブジェクトがスコープ外になっても、実行されていることが示されています。

from threading import Thread
from time import sleep

def t_func():
    print "Sleeping"
    sleep(5)
    print "Done Sleeping"

def test():
    t = Thread(target=t_func)
    t.start()

>>> test()
Sleeping
Done Sleeping

t起動直後にスレッドオブジェクトを削除しても、実行を継続します。ただし、実際には、開始したスレッドを追跡して、スレッドが終了したことを確認したり、スレッドが生きているかどうかを監視したりする必要があります。また、必要に応じてそれらをクリーンにシャットダウンします。

于 2012-05-02T01:23:02.007 に答える