สภาพแวดล้อมการทำงานของบทช่วยสอนนี้: ระบบ Windows 7, เวอร์ชัน Java 10, คอมพิวเตอร์ DELL G3
1. ใหม่ : เธรดที่ยังไม่ได้เริ่มหลังจากการสร้างจะอยู่ในสถานะนี้
2. Runnable : รวม Running และ Ready ในสถานะเธรดของระบบปฏิบัติการ นั่นคือเธรดในสถานะนี้อาจกำลังดำเนินการอยู่หรืออาจกำลังรอให้ระบบปฏิบัติการจัดสรรเวลาดำเนินการให้
3. กำลังรอ : เธรดในสถานะนี้จะไม่ได้รับการจัดสรรเวลาดำเนินการของตัวประมวลผล ต้องรอเพื่อให้เธรดอื่นตื่นขึ้นอย่างชัดเจน วิธีการต่อไปนี้จะทำให้เธรดตกอยู่ในสถานะรอ:
เมธอด Object::wait() ไม่ได้ตั้งค่าพารามิเตอร์การหมดเวลา
Thread::join() วิธีการโดยไม่ต้องตั้งค่าพารามิเตอร์ Timeout
LockSupport::park() วิธีการ
4. การรอตามกำหนดเวลา : เธรดในสถานะนี้จะไม่ได้รับการจัดสรรเวลาดำเนินการของตัวประมวลผล แต่ไม่จำเป็นต้องรอเพื่อให้เธรดอื่นตื่นขึ้นอย่างชัดเจน ซึ่งจะถูกปลุกโดยอัตโนมัติโดยระบบหลังจากช่วงระยะเวลาหนึ่ง วิธีการต่อไปนี้จะทำให้เธรดอยู่ในสถานะรอกำหนดเวลา:
Object::wait() วิธีการที่มีการตั้งค่าพารามิเตอร์หมดเวลา
Thread::join() วิธีการที่มีการตั้งค่าพารามิเตอร์หมดเวลา
LockSupport::parkNanos() วิธีการ;
LockSupport::parkUntil() วิธีการ
5. Blocked : เธรดถูกบล็อค ความแตกต่างระหว่าง "สถานะถูกบล็อค" และ "สถานะรอ" คือ "สถานะถูกบล็อค" กำลังรอรับการล็อคแบบเอกสิทธิ์เฉพาะบุคคล "สถานะรอ" กำลังรอช่วงระยะเวลาหนึ่งหรือเพื่อให้การดำเนินการปลุกเกิดขึ้น เธรดจะเข้าสู่สถานะนี้ในขณะที่โปรแกรมกำลังรอเข้าสู่พื้นที่การซิงโครไนซ์
6. สิ้นสุด : สถานะเธรดของเธรดที่สิ้นสุด เธรดได้สิ้นสุดการดำเนินการแล้ว
ข้างต้นคือ เธรด Java ทั้งหกสถานะ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน
คู่มือการเรียนรู้ Java เพิ่มเติม: กวดวิชาจาวา