➤ How to Code a Game
➤ Array Programs in Java
➤ Java Inline Thread Creation
➤ Java Custom Exception
➤ Hibernate vs JDBC
➤ Object Relational Mapping
➤ Check Oracle Database Size
➤ Check Oracle Database Version
➤ Generation of Computers
➤ XML Advantages & Disadvantages
➤ Advantages of Open Source Software
➤ How to read and display .class file version
➤ Java Program Without Using User-defined Class
Java Multithreading Interview Questions Part – 1 | In the top Java Multithreading Interview Question we have seen the top frequently asked questions. But in Java, multithreading is one of the most important areas to ask questions in the interview therefore we have prepared more questions and answers on Java multithreading. Since it becomes a long article so we divided it into 5 different parts. If you are searching for all the questions related to Java Multithreading then you can find them from the given below links:-
- Top Java Multithreading Interview Questions
- Part-1:- Introduction to Java Multithreading
- Part-2:- Defining a thread, run(), start(), setName(), getName()
- Part-3:- Thread Priority, yield(), join(), sleep() & interrupt()
- Part-4:- Synchronization in Java
- Part-5:- Inter-thread Communication, Deadlock, Daemon Thread
Java Multithreading Introduction Interview Questions
1. What is Multi-Tasking?
The process of executing multiple tasks at a time concurrently is called multitasking. Multithreading is used to obtain multitasking. It consumes less memory and gives an efficient performance.
2. What are the different ways of executing tasks?
The three different flows of executing tasks:-
- Sequential flow of execution:- Two tasks are executed one after one. It means the second task execution is started only after the first task execution is fully completed.
- Parallel flow of execution:- Two tasks are executed at a time without depending on each other. It means at the same point of time two tasks can be in running mode.
- Concurrent flow of execution:- Two tasks are executed simultaneously (at a time concurrently). It means the second task will be run only when the first task execution is paused. Similarly, first task execution is resumed when the second task is paused.
3. What are the different types of multitasking?
There are two types of multitasking:-
- Process based multitasking
- Thread based multitasking
4. What is process-based multitasking?
Executing several tasks simultaneously where each task is a separate independent process (or program) is called process-based multitasking.
Example:- Assume while typing the Java program in a text editor, you are also listening to music, and downloading a file. Here coding in text editor, music system player, downloading a file will be executed simultaneously but they are independent of each other. Process-based multitasking is best suitable at OS (operating system) level but not at the programmatic level.
5. What is thread-based multitasking?
Executing several tasks simultaneously where each task is a separate independent part of the same program is called thread-based multitasking. It is best suitable at the programmatic level.
6. What is Thread?
Thread is an independent sequence flow of execution. It executes the method in sequence one after one. Each thread runs in a different stack frame. A process may contain multiple threads. Threads share the process resources, but still, they execute independently.
7. What is multithreading?
Multithreading is a process of creating multiple threads for executing multiple independent tasks concurrently to complete their execution in less time by using CPU ideal time effectively.
8. What is the main advantage of multithreading?
The main advantage of multithreading is to increase the performance of the system by reducing response time. Its other advantages are:
- Multithreading provides better utilization of cache memory as threads share the common memory resources.
- Multithreading reduces the number of the required server as one server can execute multiple threads at a time.
- Multithreading allows an application/program to be always reactive for input, even already running with some background tasks
- Multithreading allows the faster execution of tasks, as threads execute independently.
9. What is the difference between multitasking and multithreading?
|The process of executing multiple independent main tasks at a time concurrently is called multitasking.||The process of executing multiple independent sub-tasks in one main task at a time is called multithreading.|
|Each task is executed in a separate process.||All tasks are executed in a single process.|
|Multitasking is heavyweight because switching between contexts is slow. Here each task is executed in a separate process which is created at a different address.||Multithreading is lightweight because switching between contexts is fast. Here all threads are created in a single process means threads are created in the same address.|
|Multitasking exists at the OS level. Example:- Windows, Linux, Mac.||Multithreading exists at the process level. Example:- JVM.|
10. Is Java by default a multithreaded programming language?
Yes, by default Java is a multithreaded programming language. JVM creates a “main” thread group that creates a “main” thread. The “main” thread is responsible for calling the main() method. Not only the main thread but JVM also creates many daemon threads which run in the background to provide services to the non-daemon threads. See more:- Daemon thread in Java
11. What is a thread scheduler?
Thread Scheduler is part of JVM and it is responsible for scheduling thread execution. If multiple threads are waiting to get the chance of execution then in which order threads should be executed is decided by the thread scheduler.
12. What is the Job of Thread Scheduler?
The main task of the thread scheduler is:- Scheduling the thread execution.
13. What is the meaning of single thread model and multi thread model application?
If the entire application is executed by a single thread itself then it is called a single thread model application. But if the application is executed by multiple threads then it is called a multi-thread model application.
14. What is the problem with a single thread of execution?
In a single thread flow of execution, if one task execution is paused, this paused time will not be used for executing other tasks. Here execution time will be wasted. Due to this waste of paused time, program execution takes more time. Using multithreading one task paused time will be allocated to execute another task so that program execution will be fast.
15. When should we create multiple threads to execute different tasks?
To complete independent multiple tasks execution in less time we should create multiple threads. In multithreading-based programming, CPU ideal time is utilized effectively.
16. What is the use of the main thread and garbage collector thread?
The main thread is used for executing Java methods logic by providing separate memory blocks in it. This memory block is technically called a stack frame. As many methods and constructors invoke those many new stack frames are created. Once the current method and constructor logic are executed, the stack frame is destroyed.
The garbage collector is used for destroying unreferenced objects from the heap area, and freeing this memory, and returning to the JVM. So, that JVM will use this free memory for creating new objects.
17. What is context switching?
In Context switching the state of the process (or thread) is stored so that it can be restored and execution can be resumed from the same point later. Context switching enables multiple processes to share the same CPU.
18. Does each thread have its stack in multithreaded programming?
Yes, in multithreaded programming every thread maintains its own or separate stack area in memory due to which every thread is independent of each other.
If you enjoyed this post, share it with your friends. Do you want to share more information about the topic discussed above or you find anything incorrect? Let us know in the comments. Thank you!