/ / Python:スレッドからファイルを開いて書き込むことができない - python、マルチスレッド

Python:スレッドからファイルを開いて書き込めません - Python、マルチスレッド

私はスレッドからファイルを作成/オープンして書き込みしようとしています。

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() そのスレッドが完了するのを待つように。