外部で設定された条件をチェックして終了できる必要がある (一連の) 無限ループを実行する必要があります。スレッド化モジュールがそれを可能にするだろうと思っていましたが、私の努力は失敗に終わりました。これが私がやろうとしていることの例です:
import threading
class Looping(object):
def __init__(self):
self.isRunning = True
def runForever(self):
while self.isRunning == True:
"do stuff here"
l = Looping()
t = threading.Thread(target = l.runForever())
t.start()
l.isRunning = False
t.start が別のスレッドで実行され、l の属性に引き続きアクセスできることを期待していました。これは起こりません。上記のスニペットを Python シェル (IPython) で試しました。インスタンス化の直後に t start の実行が開始され、それ以降の入力がブロックされます。明らかに、threading モジュールについて正しくないことがあります。問題を解決する方法について何か提案はありますか?