7

メイン以外のスレッドでTCPサーバーを実行する必要があるアプリケーションを構築しています。次のコードを実行しようとすると:

reactor.listenTCP(ServerConfiguration.tcpport, TcpCommandFactory())
reactor.run()

次のエラーが発生します

exceptions.ValueError:シグナルはメインスレッドでのみ機能します

メイン以外のスレッドでツイストサーバーを実行できますか?

4

1 に答える 1

21

Twistedは任意のスレッドで実行できますが、一度に実行できるのは1つのスレッドのみです。非メインスレッドで実行する場合は、単に実行しますreactor.run(installSignalHandlers=False)。ただし、サブプロセスの終了が検出されないため、非メインスレッドでreactorを使用してサブプロセスを生成することはできません。(これはUNIXの制限であり、実際にはTwistedの制限ではありません。)

于 2012-10-16T23:00:58.990 に答える