StudyToCert

All certifications / OCP Java / Lessons

Oracle Certified Professional: Java SE Developer 1Z0-831 (Java SE 25) · Domain 8: Managing concurrent code execution

Thread lifecycle and start() vs run()

▶ Watch the overview video

Last reviewed September 25, 2026 · Leer en español

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.

Free account

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.

Sign up free Log in

Study OCP Java for free
A week-by-week plan with every lesson, quizzes, checkpoint tests, a practice exam and hands-on labs.
Open the OCP Java study plan