1

サーブレットから別のスレッドを実行するにはどうすればよいですか? init()サーブレットのメソッドに以下のコードがあります。

FileThread myThread = new FileThread();
myThread.start();
myThread.run();     

FileThread は、ファイルが変更されたかどうかを確認するために、いくつかのフォルダーを参照することになっています。したがって、このスレッドはループで実行されるように作られています。しかし、それは私が期待したようには機能しません。サーバーのサービスをフリーズします (サーバーは HTML を返しません)。

このスレッドをバックグラウンドで実行し、サーブレットのプロセスに干渉しないようにします。どうすればこれを達成できますか?

4

2 に答える 2

6

新しいスレッドではなく、現在のスレッドでメソッドを実行するため、通常は.run()aを呼び出しません。そこに無限ループがあると言いました。したがって、サーブレットは初期化を終了しないため、リクエストを処理しません!Threadrun()

オブジェクト.start()を呼び出すだけです。このメソッドは、そのオブジェクトのメソッドでThreadコードを実行する新しい実行スレッドを JVM に起動させます。run()Thread

于 2013-06-25T01:36:39.613 に答える