Java Multithreading 면접 질문과 답변
Ques 21. Explain the concept of thread dumping.
Thread dumping involves generating a snapshot of all the threads' current state and stack traces. It is useful for diagnosing performance or deadlock issues.
Example:
In Java, you can use tools like jstack or VisualVM to generate thread dumps.
Ques 22. How does the ConcurrentHashMap differ from HashMap in terms of multithreading?
ConcurrentHashMap is designed for multithreaded access and allows concurrent reads without blocking, while HashMap is not thread-safe and may lead to inconsistencies in a multithreaded environment.
Example:
ConcurrentMapconcurrentMap = new ConcurrentHashMap<>();
Ques 23. Explain the concept of the happens-before relationship in Java.
The happens-before relationship is a partial ordering of memory operations in Java. It ensures that the result of one operation is visible to another, providing a consistent view of shared data among threads.
Example:
Using synchronized blocks establishes a happens-before relationship.
Ques 24. What is the purpose of the AtomicInteger class in Java?
AtomicInteger is a class in Java that provides atomic operations for integer variables, ensuring that operations on the variable are performed atomically without interference from other threads.
Example:
AtomicInteger counter = new AtomicInteger(0); counter.incrementAndGet();
Ques 25. Explain the concept of thread starvation.
Thread starvation occurs when a thread is unable to gain access to a resource or the CPU, preventing it from making progress. It is often caused by improper synchronization or priority mismanagement.
Example:
When low-priority threads continuously preempt high-priority threads.
Most helpful rated by users:
- What is multithreading?
- What is the purpose of the yield() method?
- What is the purpose of the sleep() method in Java?
- How do you create a thread in Java?
- Explain the difference between Thread and Runnable.