0

Twisted の使用経験が豊富な方の中には、スレッドと一緒に使用することについて私が判断するかもしれませんが、私はそれを実行しました :)。そして今、私はどういうわけか問題を抱えています-クライアントリクエストをリッスンするアプリケーションサーバーを使用していますが、新しいクライアントが接続するたびに別のスレッドが生成され、しばらく使用するとサーバーが停止するため、適切に閉じるのを忘れている可能性がありますリクエストの処理。さて、私は3つの異なるタイプのスレッドを持っていますが、それらの1つで発生します-問題は、サーバーが動作を停止したときに常にThread.join()動作しないように見えるため、それを行う適切な方法がわからないことです。cat /proc/<pid>/statusThreads: 43

したがって、これをデバッグする方法を探しており、スレッドを適切に閉じる方法を確認しています。

そして、ええ、私はこの質問について知っています:

Python でスレッドを強制終了する方法はありますか?

そしておそらく他の多くの。

4

2 に答える 2

4

リアクター ループ (別名スポーン スレッド) の外側で何かを行うための「ねじれた方法」は、twisted.internet.threads.deferToThread です。

例えば:

from twisted.internet import threads

def sthToDoInSeparateThread():
    return 3

d = threads.deferToThread(sthToDoInSeparateThread)

deferToThread は、別のスレッドで sthToDoInSeparateThread を実行し、スレッドが停止するとすぐに defered d を返します。

于 2009-10-20T16:46:59.497 に答える
0

mythread.setDaemon(True)メインプロセスが終了したときにスレッドが終了するようにしたいだけかもしれません。

于 2010-02-23T11:37:33.747 に答える