NEW = เมื่อเทรดถูกสร้าง
RUNNABLE = เมื่อเทรดกำลังอยู่ในคิวงาน
BLOCKED = เมื่อเทรดกำลังรอที่จะ lock วัตถุเข้าสู่ synchronozed block
WAITING = เมื่อเทรดกำลังรอเหตุการณ์บางอย่างที่จะเกิดขึ้นกับ เทรดอีกเส้นหนึ่ง
TIMED_WAITING = เมื่อเทรดรอให้ถึงเวลาที่กำหนด จะเกิดเมื่อโดนเรียก sleep หรือ wait และ join แบบมีกำหนดเวลา
TERMINATED = เมื่อเทรดสิ้นสุดการทำงานแล้ว
โดยแต่ละตัวเป็น field ที่คืนค่ามาเป็น java.lang.Thread.State แบบ enum
เพื่อให้เข้าใจลองมาดูโค้ดนี้กัน
package myPackage; public class ThreadStateExample { public static void main(String[] args) { for (Thread.State e : Thread.State.values()) { System.out.println(e.toString()); } } }
ผลการทำงาน
NEW
RUNNABLE
BLOCKED
WAITING
TIMED_WAITING
TERMINATED
ไม่มีความคิดเห็น:
แสดงความคิดเห็น