私はそれが一度に6000の着信要求を処理することができますJAVA TCPリスナーを、構築しています。私はソケット接続を作成し、データを受け入れると、私はスレッドを作成して、いくつかの操作をしていますが、私はこのスレッドを殺していない、デバイスは2分ごとにデータを送信するので、 30秒間スリープモードにします。
しかし、システムを5分間実行した後、tomcat6.0で実行されているアプリケーションでエラーが発生しました - 「Webアプリケーションは[Thread-214]という名前のスレッドを開始したようですが、これを停止できませんでした。メモリリークを引き起こす可能性があります。
私はどこが間違っているのか理解してもらえますか?
ありがとうございます。
[Tomcat 6.0アプリケーションでのメモリリーク]の可能な複製(http://stackoverflow.com/questions/9753120/memory-leak-in-tomcat-6-0-application) – duffymo
Tomcatはサーブレットコンテナであり、それ自体で要求とスレッドを処理します。あなたは間違った方法でそれを使用しています。あなたが達成しようとしていることは、スタンドアロンのアプリケーションで行う必要があります。もう1つの質問でコメントされているように、あなたはスレッドを生かしておき、ユーザーが戻って同じスレッドを使うことができます。この代わりに、メモリ内のキャッシュまたは永続性を使用してください。あなたの全体的なデザインに欠陥があります。 – Sean
スレッドを作成して開始するために使用しているコードを投稿してください。 – Java42