2011-09-26 31 views
6

Tôi gặp sự cố với máy chủ Tomcat không thể tắt máy một cách duyên dáng. Tôi đã thực hiện một bãi chứa thread sau khi tôi đã ban hành lệnh tắt máy, và nó trông như thế này:Các chủ đề java bắt đầu bằng "pool" là gì?

http://pastebin.com/7SW4wZN9

Các chủ đề mà tôi tin là "nghi ngờ" rằng không cho phép máy ảo phải đóng cửa là một trong những có tên "pool-4-thread-1". Phần còn lại của chúng là các chuỗi daemon hoặc các luồng VM bên trong. Trong khi cố gắng tìm ra chủ đề này là gì, tôi nhận thấy rằng có các chương trình java khác ngoài đó tạo ra các luồng có tên tương tự (Ví dụ, JVisualVM tạo ra các luồng đó).

Vì vậy, tôi tự hỏi nếu ai đó biết chủ đề này là gì và làm thế nào nó có thể được tạo ra.

+0

"không thể shudtown duyên dáng" có nghĩa là gì? – Bozho

+0

Nó có nghĩa là VM không chấm dứt sau khi tôi tắt shutdown.sh. Nó cần một tín hiệu giết trên cấp độ hệ điều hành. – mavroprovato

Trả lời

12

Các chủ đề này có thể được tạo bởi một ExecutorService mà bạn đã tạo trong mã của bạn ở đâu đó (trực tiếp hoặc gián tiếp thông qua thư viện) và cần phải tắt (ví dụ trong ServletContextListener).

+0

yup, đúng vậy. +1 .. – Bozho

+0

Bạn đã chính xác, tôi đã tạo một lớp thử nghiệm với một ExecutorService và một Thread với tên này đã được tạo. Bất kỳ ý tưởng về cách tôi có thể ... săn này ExecutorService xuống và giết nó? – mavroprovato

+0

Khó khăn, vì họ đang sử dụng tên mặc định, không cho nó đi. Bạn có thể tạo các đống dấu vết trong khi ứng dụng đang chạy, có thể bạn có thể bắt được một trong số chúng thực hiện công việc thực tế. Điều đó sẽ cho đi một số tên lớp. Bạn đang sử dụng loại thư viện nào? Bất cứ điều gì có thể làm việc với chủ đề nền? – Thilo

Các vấn đề liên quan