Nearby lessons

72 of 125

Java - Daemon Threads

📌 What You Will Learn
  • What a thread is and how it is different from a process
  • Two ways to create a thread: Thread class and Runnable interface
  • The thread life cycle (states)
  • How threads cooperate: synchronized, wait and notify
  • The modern way: Executors, Callable and lambdas

Daemon Threads is a core concept of the Java language. This lesson explains Daemon Threads with complete, runnable code examples, clear step-by-step explanations, and common mistakes to avoid with exam-style MCQs at the end.

Daemon Threads

A daemon thread is a background helper thread. When all normal (non-daemon) threads finish, the JVM stops daemon threads automatically and exits. Example: the Garbage Collector thread is a daemon.

Example01
JCode Cell
1Thread t = new Thread(() -> {});
2t.setDaemon(true); // becomes a background helper
3t.start();
📝 Key Takeaways
  • A thread is a small unit of work; a process is a running program.
  • Create a thread by extending Thread or (better) implementing Runnable.
  • Life cycle: NEW -> RUNNABLE -> BLOCKED/WAITING/TIMED_WAITING -> TERMINATED.
  • Shared data races when many threads change it; synchronized gives a lock.
  • wait/notify let threads talk; they need the lock.
  • Deadlock = threads waiting on each other's locks; avoid by consistent lock order.
  • Real projects use Executors + Callable instead of raw threads.

🧠 Test Your Knowledge

1 Questions
Progress: 0 / 1