25 Interview Questions About Multithreading (With Example Answers)
Multithreading is a key concept in programming, especially for people who work with Java. If you are applying for a job as a Java developer, you will probably be asked about multithreading. As part of getting ready for an interview, you should spend some time going over common questions that involve more than one thread. In this article, we go over some common interview questions about multitasking and show you how to answer them.
Putting together a list of sample answers to interview questions
Here are 25 questions and answers about multitasking that will help you get ready for your next interview:
- What’s a thread?
- How does multithreading work?
- How are a thread and a process different from each other?
- Why should you use multithreading in your apps?
- What is a pool of threads?
- During its life, a thread can be in what states?
- How does a race condition work?
- What does it mean to be in sync?
- Why would you want to use a “synchronized block”?
- What does switching contexts mean?
- Can you explain what the thread scheduler is and how it relates to thread priority?
- What is “slicing time”?
- Why could you say that the way a thread acts is unpredictable?
- Describe the busy spin technique and why you might use it.
- What is the lack of thread?
- Can you begin a thread more than once?
- Can you describe a deadlock situation?
- What happens when there is a livelock?
- What’s the difference between the Java methods wait() and sleep()?
- Describe a daemon thread.
- Why must you change your thread class’s run() method?
- How could you make sure the thread is safe?
- What’s the difference between programming that is synchronous and programming that is not?
- How do you make a Java thread?
- How do you end a Java thread?
1.What exactly is a thread?
This is a question an interviewer might ask to find out how good you are at programming and if you know how to handle multiple threads.
Example: “A thread is a separate way for code to run, or a subprocess. You can have only one thread in a process, or you can have many threads that all share the same process resources.”
4.What does “multithreading” mean?
Multithreading is a very important concept in programming. The interviewer can tell how well you understand a topic by how well you can explain it in a few sentences.
Example: “Multithreading is the ability to run more than one thread at the same time. Even though each thread uses the same process resources, each one works on its own.”
3.How are a thread and a process different from each other?
With this question, the interviewer wants to see if you understand basic ideas about multithreading.
Example: “A process is a single application or program, while a thread is a part of that application or program that does its own thing. Each process has its own address space in memory, and threads share their address space.”
4. Why should your apps use multiple threads?
With this question, you can show the interviewer how well you understand the benefits of multitasking.
Example: “Multithreading makes good use of the CPU because each thread runs at the same time. You can have processes running in the background while the application waits for user input. Also, since each thread runs on its own, tasks can be done faster.”
5. What is a pool of threads?
An interviewer might ask you about thread pools to see if you know how to write code that runs quickly.
Example: “A thread pool is a collection of worker threads created at start-up that can be assigned tasks as needed, then put back in the pool when complete. When you use a thread pool, you have a ready supply of threads to use when you need them, which makes your application run faster.”
6.During its life, a thread can be in what states?
Knowing a thread’s different states shows that you understand how threads work and can fix a thread that isn’t working.
Example: “There are five states a thread can have: New, Runnable, Running, Waited/Blocked and Dead/Terminated.”
7. What does “race condition” mean?
This question is about one of the risks of multitasking, so you should show that you know about it.
Example: “When multiple threads try to be the first to run, this is called a “race condition.” If the thread that wins the race is not the one that was supposed to run first, the code may do something unexpected. The problem can be fixed by getting everything in sync.”
8. What does it mean to be in sync?
Knowing about synchronization shows that you know how to help reduce some of the risks that come with multithreading.
“Synchronization forces threads to run one at a time to avoid a race condition in which two or more threads try to do the same thing at the same time.”
9.Why would you want to use a synchronized block?
This question shows that you know how to use synchronization in other ways to handle multiple threads.
Example: “A synchronized block allows you to designate a particular portion of a method as synchronized. That is, only one thread will be allowed to run until it’s done, giving that one thread more importance than the others.”
10. What does “switching contexts” mean?
An interviewer might ask you about context switching to see if you understand how multithreading works at the CPU level.
Example: “Context switching is the act of saving the current state of a thread or process so that it can be used again later. This lets a single CPU handle more than one thread or process.”
11.Can you explain what the thread scheduler is and how it relates to thread priority?
This is another question about how multitasking works at the level of the CPU.
“The thread scheduler is what gives CPU time to threads and decides in what order threads will run.”
12. What is “slicing time”?
Your answer can show the interviewer that you know how the thread scheduler works.
“Time slicing is the process that the thread scheduler uses to divide CPU time among the active threads.”
13. Why could you say that the way a thread acts is unpredictable?
Interviewers may ask this question to see if you understand the risks that come with the thread schedule being set by the CPU.
Example: “Since the CPU is in charge of scheduling threads, different CPUs may give different threads more importance. This means that there is a chance that two CPUs won’t run your threads in the same order. This makes your code execution less predictable.”
14. Describe the busy spin technique and why you might use it.
This question shows that you know how to manipulate threads in a common way.
Example: “You put a thread on hold by making it run an empty loop for a certain amount of time. This is called “busy spin.” Unlike methods like wait() and sleep(), a busy spin doesn’t give up control of the CPU. This means that the CPU cache stays the same.”
15.What does “thread starvation” mean?
If you know about thread starvation, it can help you fix bugs in your code.
Example: “When there isn’t enough CPU power to run a thread, this is called thread starvation. This can happen with low-priority threads or threads that are pushed down in favor of other threads.”
16. Can a thread be started twice?
This question shows that you know what a thread’s state is and how it works.
Example: “After a thread has been run, it is said to be “dead.” You can’t bring a dead thread back to life.”
17. Can you describe a deadlock situation?
Problems like deadlock can make code stop working. If you can explain the problem, it’s likely that you also know how to solve it.
Example: “When multiple threads are waiting for each other to free up CPU resources so they can run, this is called a “deadlock.” This can happen when, for example, one thread has the highest priority but needs resources from a waiting thread, or when all the threads depend on each other to release needed resources.”
18. What happens if there is a livelock?
This question is a continuation of the last one and is meant to test how well you understand this possible problem with multithreading.
Example: “A livelock is like a deadlock, except that the state of the threads keeps changing without ever moving forward. For instance, if all the threads are stuck in loops that never end.”
19. What’s the difference between the Java methods wait() and sleep()?
Even though these two common Java methods seem to do the same thing, you need to be able to tell them apart.
Example: “The wait() method puts a thread on hold and waits until no other threads call the notify() or notifyAll() methods. The sleep() method stops for a certain amount of time to let other threads run, and then it starts up again.”
20. What’s a daemon thread?
A daemon is a useful type of thread that works differently from regular threads, so you may be asked about it.
Example: “A thread with low priority is called a daemon thread. It might help or support the other threads in the background. When these threads stop working, the daemon thread ends on its own.”
21.Why do you have to change your thread class’s run() method?
Your answer to this question will show the interviewer that you know how to use Java and how thread execution works.
Example: “When you call a thread’s start() method, the run() method for that thread is automatically called. If you haven’t changed anything about the run() method, the thread won’t do anything.”
22. How can you make sure the thread is safe?
The idea of thread safety is important because it keeps your code from getting stuck or crashing. You should be ready to talk about it if people ask you about it.
“There are several ways to make threads safe, such as using synchronization, the volatile keyword, or atomic wrapper classes.”
23.How is synchronous programming different from asynchronous programming?
You might be asked about programming methods because they can affect how well your code works.
Example: “When a single thread is given a single task, this is called synchronous programming. Asynchronous programming is when more than one thread works on the same task at the same time.”
24. In Java, how do you make a thread?
This question shows how well you know Java.
“To make a thread in Java, you can either implement the Runnable interface on a class and create a thread object, or you can make a class that extends the thread class.”
25.How do you stop a Java thread?
This question could be a trick, so your answer will show that you know how to work with threads in Java.
Example: “In Java, there is no simple way to stop a thread. Often, to stop a thread, you have to count on the fact that it will die when it’s done. If you need to kill a thread by hand, you can use a Volatile boolean variable inside a thread that throws an exception when called from another thread.”