Có thể ai đó vui lòng giải thích chuỗi là gì theo yêu cầu và chuỗi cho mỗi kết nối? Mô hình nào servlet hoạt động? Các luồng được phân bổ như thế nào để xử lý các yêu cầu HTTP? Đó là chủ đề/yêu cầu hoặc kết nối?Chủ đề được phân bổ để xử lý yêu cầu Servlet như thế nào?
Và giả sử nếu tôi muốn thực hiện tác vụ tốn thời gian trong phương pháp doGet()
Servlet
của tôi một cách không đồng bộ, tôi bắt đầu một chuỗi mới bằng cách sử dụng trình thực thi Java để các phép tính dài được thực hiện trong một chuỗi riêng biệt và phản hồi được gửi đi ngay lập tức.
Bây giờ, điều đó có đảm bảo rằng tôi đã giải phóng chuỗi đã xử lý số HttpServletRequest
của mình hoặc nó vẫn đang được sử dụng vì một chuỗi con vẫn đang chạy?
Đây không phải là cách bạn nên thực hiện công việc không đồng bộ trong vùng chứa, nó có thể đơn giản nhất nhưng không được khuyến nghị. http://stackoverflow.com/questions/533783/why-spawning-threads-in-j2ee-container-is-discouraged/533847#533847 – Robin
@Robin: Cuộc gọi tốt. Tôi đã thêm một thông báo trước về các vùng chứa JEE đầy đủ. Tôi thường nghĩ về các thùng chứa servlet đơn giản. –
@Robin: Cảm ơn các bạn. Tôi không tự mình xử lý chu kỳ sống của luồng. Tôi dự định sử dụng Spring TaskExecutor abstraction.http: //static.springsource.org/spring/docs/2.0.x/reference/scheduling.html#scheduling-task-executor-usage Ứng dụng web của tôi đang hoạt động dưới tomcat 6. Spring cũng cung cấp việc triển khai trình quản lý công việc như được đề cập trong liên kết nhưng nó nói rằng đặc tả của nó không phải là JEE. Cái nào tốt hơn trong enviornment của tôi? – hellojava