Multithreading Interview Questions
16. Explain the meaning of the deadlock and when it can occur?
Deadlock, as the name suggests, is a situation where multiple threads are blocked
forever. It generally occurs when multiple threads hold locks on different resources
and are waiting for other resources to complete their task.
The above diagram shows a deadlock situation where two threads are blocked
forever. Thread 1 is holding Object 1 but needs object 2 to complete processing
whereas Thread 2 is holding Object 2 but needs object 1 first. In such conditions, both
of them will hold lock forever and will never complete tasks.
17. Explain volatile variables in Java?
A volatile variable is basically a keyword that is used to ensure and address the
visibility of changes to variables in multithreaded programming. This keyword
cannot be used with classes and methods, instead can be used with variables. It is
simply used to achieve thread-safety. If you mark any variable as volatile, then all the
threads can read its value directly from the main memory rather than CPU cache, so
that each thread can get an updated value of the variable.
Dostları ilə paylaş: