Inter-thread Communication in Java — Java Technical Interview Questions & Answers
Inter-thread Communication in Java
Inter-thread Communication in Java
- Inter-thread Communication is part of Java concurrency. A thread is a path of work inside a process. Create with Thread or Runnable, then call start() — not run(). run() only runs on the same thread.
- For Inter-thread Communication: if two threads share data, synchronize or the result can be wrong. sleep pauses. join waits for another thread to finish. daemon threads die when all user threads finish.
- Inter-thread Communication deadlock: two threads wait for each other’s lock forever. Avoid by locking in the same order. Don’t guess thread order — it can change every run.
- Let's take this on the board with one tiny Main class — no extra files. Inter-thread Communication in Java — start() schedules the thread; main also prints — order may vary. Start from main, go line by line, and stop at each print. That output is the proof for Inter-thread Communication.
Technical Interview Tip: start() vs run() is a classic interview question.
Code Examples for Inter-thread Communication in Java
Example
// Thread demo
public class Main {
public static void main(String[] args) {
Thread t = new Thread(() -> System.out.println("Hi from thread"));
t.start();
System.out.println("Hi from main");
}
}Inter-thread Communication in Java — start() schedules the thread; main also prints — order may vary.
How to Explain Inter-thread Communication in Java to an Interviewer
What is Inter-thread Communication?
Inter-thread Communication — thread = one path of work. start() schedules it. run() does not. Inter-thread Communication — shared data needs synchronization. Inter-thread Communication — sleep = pause. join = wait for other thread.
Why do we use Inter-thread Communication in Java?
Makes the program clearer or safer Inter-thread Communication — thread = one path of work. start() schedules it. run() does not.
Write one small example of Inter-thread Communication.
Show syntax Say what prints
What mistake do beginners make with Inter-thread Communication?
Only the name, no example Inter-thread Communication — calling run() instead of start(). Deadlock = locks in wrong order.
Where is Inter-thread Communication used in a real program?
Day-to-day Java code