私はスレッドからファイルを作成/オープンして書き込みしようとしています。
from threading import Thread
CONNECTION_PORT = 9191
def testl():
file = open("testfile.txt","w")
file.write("Hello World")
file.write("This is our new text file")
file.write("and this is another line.")
file.write("Why? Because we can.")
file.close()
def test():
t = Thread(target=testl)
# t.daemon = True
t.start()
test()
問題は、テスト関数の2行目(t.daemon = True)のコメントを外すと、動作しなくなることです。デーモンスレッドモードで動作させる方法はありますか。
インターネット上で、あるいはこれに関連した解決策を見つけることはできません。ファイル操作のための最善の方法ではないことを私は知っています。
回答:
回答№1は0デーモンスレッドは、プログラムが終了する前にpythonがスレッドの完了を待つ必要がないことを意味します。 だから、何が起こるのですか:
test()
スレッドを開始しますtest()
終了し、含まれているスレッドtest()
(おそらくメインスレッド)終了非デーモンスレッドはありません
pythonは終了します。
スレッドをデーモンスレッドにしたいとは思わない。 そうであれば、デーモンではないスレッド呼び出しがあるはずです。 t.join()
そのスレッドが完了するのを待つように。