How can the Servlet Container handle concurrent requests in a Servlet?

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "By creating a new thread for each request". Container chỉ nạp một thực thể duy nhất của mỗi servlet, nhưng mỗi yêu cầu HTTP đi vào lại được cấp một luồng lấy từ thread pool để chạy service() rồi phân phát sang doGet() hay doPost(), nhờ vậy nhiều yêu cầu chạy song song trên cùng thực thể đó, biến cục bộ trong phương thức là riêng của từng luồng và chỉ biến thực thể hay dữ liệu đặt trong ServletContext mới phải tự đồng bộ. "By making the service() method synchronized" làm điều ngược lại: thực thể servlet duy nhất trở thành chốt chung nên các yêu cầu phải xếp hàng chờ nhau, đó là cách hy sinh tính đồng thời chứ không phải cách tạo ra nó. "By using the Singleton design pattern" chỉ nói tới việc có đúng một thực thể, không giải thích bằng cơ chế nào mà một thực thể phục vụ được nhiều yêu cầu cùng lúc. "By using the wait() and notify() methods" là cặp lệnh để các luồng do lập trình viên tự tạo chờ và báo nhau trong mã nghiệp vụ, container không dùng chúng để tiếp nhận yêu cầu mới.

Cùng phần 2

Xuất hiện trong 1 bộ đề