Every Thread object moves through states defined in the Thread.State enum, and getState() reports the current one. NEW means the thread object exists but start() has not been called. RUNNABLE means it is running or ready to run; Java does not separate running from waiting for a CPU. BLOCKED means it is waiting to acquire a monitor lock to enter a synchronized block or method. WAITING means it waits indefinitely for another thread, for example in join() without a timeout or Object.wait(). TIMED_WAITING is the same with a time limit, such as Thread.sleep(100) or join(500). TERMINATED means run() has finished, normally or with an exception.
Keep reading for free
Create a free StudyToCert account to read the rest of this lesson: 5 more sections, 5 key terms, a real-world example, an exam tip and self-check questions. Every lesson, lab and practice test is free with an account.