21Multithreaded questions are an essential part of Java interviews. If you are going to interview with an investment bank like Citibank or Morgan Stanley for a Java front office equity developer role or a company involved in electronic trading, there are many multithreaded interview questions that you will need to answer. Let’s take a look at some common Java Multithreading interview questions and their answers.
Java Multithreading Interview Questions With Answers
1. What is the race condition in Java? How are you going to find it and solve it?
This is one of the most common questions that comes up most often in high-level interviews. Interviews can ask you questions about the recent race condition you encountered, how to resolve it, and even ask you to write sample code to detect a race condition.
Race condition is a type of race problem that arises because of multiple threads running in parallel at the same time. Because Java is a multithreaded programming language, the risk of running condition is higher. This is essentially a condition that occurs when two threads are operating on the same object without proper synchronization.
2. What are the differences between the wait and sleep methods in Java?
Let’s take a look at another common Java multithreading interview question. If your concept is clear, you will have no problem answering this question.
Both are used to suspend execution of a particular thread in a multithreaded environment. The only difference between the wait () and sleep () methods is that each time a thread calls the wait () method, it releases the lock or watches that it is holding while when the sleep () method is called, it does not release the lock or the monitor it holds.
The wait () method is used for inter-thread communication and sleep () is used to suspend execution.
3. Suppose you have threads T1, T2, and T3. How will you ensure that thread T2 runs after T1 and thread T3 after T2?
Most of the time, the interviewer asks this question in the first round of the interview to check if the candidate is familiar with the concept of the join () method.
You can just answer this multithreaded question by saying – it can be done using the join () method of the Thread class.
Recommended: 5 Important Things Java Programmers Should Learn in 2019
4. Why do we call the start () method first, which in turn calls the run () method, why not directly call the run () method in our programs?
This is another classic question frequently asked by investigators. It is typically requested in junior and mid-level Java interviews.
You can answer this question this way. When you call the start () method, it creates a new thread and executes the code contained by the run () method,
But if we call run () directly, it doesn’t bother creating a thread and executes the code on the same calling thread. So the run () method would behave like a normal method and we would not be able to take advantage of multithreading.
5. How are you going to wake up a blocked thread in Java?
Waking up a blocked thread can mean different things in Java. This is why experts consider this question delicate. If the thread is blocked because of calling the wait (), sleep (), or join () method, you can interrupt the thread and wake it up by throwing InterruptedException. But if the thread is stuck on IO, I don’t think there is a way to wake it up.
Hope you found this article useful. If you know of another common Java multithreading question that should be on this list, let us know in the comments below. And finally, I wish you good luck with your future Java talks.