คุณสมบัติ isThreadSafe ระบุว่าหน้า JSP ปลอดภัยต่อเธรด (thread-safe) หรือไม่
ค่าเริ่มต้นและพฤติกรรม
- true (ค่าเริ่มต้น) - JSP engine อนุญาตให้หลายเธรดรันหน้า JSP นี้พร้อมกัน (multi-threaded) ต้องเขียนโค้ดให้ปลอดภัยต่อเธรดด้วยตนเอง
- false - JSP engine จะบังคับให้มีเพียง หนึ่งเธรด ที่รันหน้า JPS นี้ในเวลาเดียว (single-threaded) โดยใช้ synchronization mechanism
ตัวอย่างปิด thread-safety
<%@ page isThreadSafe = "false" %>
ข้อควรพิจารณา
- isThreadSafe="false" ลดประสิทธิภาพ** มาก เพราะ serialize ทุกคำขอ (request) ต้องรอคิว
- แทนที่จะปิด thread-safety ควรเขียนโค้ดให้ thread-safe อย่างถูกต้อง (หลีกเลี่ยง instance variables ใน JSP, ใช้ local variables, synchronized blocks ถ้าจำเป็น)
- คุณสมบัตินี้ล้าสมัย (deprecated) ใน JSP 2.0+ ไม่แนะนำให้ใช้
แนวทางปฏิบัติที่ดี: เขียน JSP ให้ thread-safe เสมอ (ค่าเริ่มต้น true) และจัดการ shared state ผ่าน session, application scope หรือ database แทน