เธรด (Thread)
คุณลักษณะเด่นข้อหนึ่งของภาษาจาวาคือ ความสามารถในการพัฒนาโปรแกรมแบบมัลติเธรด (MultiThread) ที่สามารถทำงานได้หลายๆ งานในหนึ่งโปรแกรม ซึ่งคุณสมบัตินี้ไม่มีในภาษาอื่น เช่น ภาษา C หรือ C++ ซึ่งถูกจัดเป็นภาษาประเภทซิงเกิลเธรด (Single-Thread) ที่มีเพียงงานเดียวในแต่ละครั้งที่หน่วยความจำประมวลผล
สำหรับงานแต่ละงานจะเรียกว่า “เธรด” ซึ่งจะแตกต่างจากโพรเซล (process) ที่ทำงานภายใต้ระบบปฏิบัติการแบบ Multitasking ตรงที่โพรเซลแต่ละโพรเซล จะมีความเป็นอิสระต่อกัน แต่
เธรดแต่ละเธรดอาจใช้ข้อมูลร่วมกันโปรแกรมภาษาจาวาสามารถกำหนดให้ออปเจ็คของคลาสใดๆ ทำงานเป็นแบบเธรดได้ ซึ่งก็จะทำให้สามารถรันโปรแกรมของออปเจ็คแบบเธรดหลายออปเจ็คได้พร้อมกัน โดยภาษาจาวาจะมีตัวจัดตารางเวลาของออปเจ็คแบบเธรดเพื่อจัดลำดับการทำงานของ
ออปเจ็คแบบเธรด ทั้งนี้เพราะโปรแกรมบางประเภทจำเป็นต้องพัฒนาเป็นแบบเธรด เช่น โปรแกรมภาพกราฟฟิกแบบเคลื่อนไหว (Graphic Animation) โปรแกรมนาฬิกา และโปรแกรมแม่ข่าย (Application Server) เป็นต้น
วงจรชีวิตของแต่ละเธรดเริ่มต้นที่ขั้น new เมื่อถูกเริ่มสร้างและจะอยู่ที่ขั้นนี้จนกระทั่งเมธอด start ถูกเรียกประมวลผล ซึ่งจะทำให้เธรดนั้นๆ อยู่ที่ขั้น ready โดยที่เธรดที่มี priority สูงที่สุดจะถูก ทำงานก่อนโดยเขาสูขั้น running แต่ละเธรดจะเขสู่ขั้นสุดท้ายของวงจรชีวิตคือ dead เมื่อเธรดนั้น ทำงานในเมธอด run เสร็จเรียบร้อยหรือเมื่อถูกหยุดการทำงานด้วยเหตุผลใดๆ ก็ตาม ออปเจ็คแบบเธรดเมื่อลงทะเบียนไว้กับตัวตารางเวลาแล้ว อาจยังไม่มีการรันโปรแกรมโดยทันที แต่ทั้งนี้จะขึ้นอยู่กับสถานะของออปเจ็คซึ่งวงจรการทำงานของเธรด จะมีการทำงานดังแสดงในรูปที่ 2-32 โดยจะมีสถานะต่างๆวงจรการทำงานของเธรด