ใน Java เธรดมี 5 สถานะที่แตกต่างกัน: ใหม่, รันได้, กำลังทำงาน, ถูกบล็อก และ ไม่ทำงาน แผนภาพการแปลงระหว่างกันมีดังนี้:
มีข้อยกเว้นในรูปด้านบน การเรียกเมธอด Yield() สามารถถ่ายโอนเธรดที่กำลังทำงานอยู่ไปยังสถานะพร้อมได้ หากคุณต้องการทดสอบว่าเธรดเสียหรือไม่ คุณสามารถใช้เมธอด isAlive() ซึ่งจะคืนค่าเป็นจริงเมื่อเธรดพร้อมใช้งาน ทำงานอยู่ หรือถูกบล็อก และส่งคืนค่าเท็จเมื่อเธรดถูกสร้างขึ้นหรือไม่ทำงาน อย่าพยายามรีสตาร์ทเธรดที่ไม่ทำงานโดยการเรียกเมธอด start() ความตายหมายถึงความตาย เช่นเดียวกับมนุษย์ มันเป็นไปไม่ได้ที่จะงอกใหม่ นอกจากนี้ อย่าเรียกใช้เมธอด start() สองครั้งบนเธรด เนื่องจากจะทำให้เกิดข้อยกเว้นด้วย