Java Programming — Multithreading
Java OOP, collections, multithreading
100 Questions 10 Topics Take Test
Advertisement
Showing 11–20 of 100 questions in Multithreading
Q.11 Hard Multithreading
Which scenario can lead to livelock in multithreading?
A Two threads continuously change state in response to each other but never make progress
B One thread blocks another thread indefinitely
C Multiple threads access the same resource without synchronization
D A thread is waiting for a resource held by another waiting thread
Correct Answer:  A. Two threads continuously change state in response to each other but never make progress
EXPLANATION

Livelock occurs when threads are not blocked but continuously change state in response to each other (like two people trying to pass each other), preventing progress. This differs from deadlock where threads are blocked.

Take Test
Q.12 Hard Multithreading
What is the behavior of ReentrantReadWriteLock when multiple threads perform read operations?
A Only one thread can read at a time
B Multiple threads can read simultaneously, but writing locks them out
C Threads must alternate between read and write operations
D All threads must wait for exclusive lock
Correct Answer:  B. Multiple threads can read simultaneously, but writing locks them out
EXPLANATION

ReentrantReadWriteLock allows multiple threads to acquire the read lock simultaneously, but only one thread can hold the write lock. This improves concurrency for read-heavy workloads.

Take Test
Q.13 Hard Multithreading
Consider a scenario with 3 threads updating a shared counter. Which synchronization mechanism is MOST efficient?
A synchronized block on counter
B AtomicInteger
C ReentrantLock
D Semaphore with permits=1
Correct Answer:  B. AtomicInteger
EXPLANATION

AtomicInteger uses lock-free CAS operations which are more efficient than synchronized blocks or locks for simple counter operations with multiple threads.

Take Test
Q.14 Medium Multithreading
What exception does CyclicBarrier throw when a thread is interrupted while waiting?
A InterruptedException
B BrokenBarrierException
C CyclicBarrierException
D ThreadInterruptedException
Correct Answer:  A. InterruptedException
EXPLANATION

When a thread waiting at a CyclicBarrier is interrupted, it throws InterruptedException. This breaks the barrier and causes other waiting threads to receive BrokenBarrierException.

Take Test
Q.15 Medium Multithreading
What is the output of this code snippet?
ExecutorService es = Executors.newFixedThreadPool(2);
es.execute(() -> System.out.println("Task 1"));
es.shutdown();
A Task 1 will be executed before the program terminates
B Task 1 may or may not be executed
C Compilation error
D Task 1 will never execute
Correct Answer:  A. Task 1 will be executed before the program terminates
EXPLANATION

shutdown() gracefully shuts down the executor service by rejecting new tasks but allowing submitted tasks to complete. Task 1 is already submitted before shutdown(), so it will execute.

Take Test
Advertisement
Q.16 Medium Multithreading
In Java 21, which new feature was introduced for concurrent programming?
A Virtual Threads (Project Loom)
B ReentrantLock
C CountDownLatch
D Phaser
Correct Answer:  A. Virtual Threads (Project Loom)
EXPLANATION

Java 21 introduced Virtual Threads as part of Project Loom, which are lightweight threads that make it easier to write scalable concurrent applications.

Take Test
Q.17 Medium Multithreading
What does the volatile keyword guarantee in multithreading?
A Prevents thread access completely
B Visibility of changes across threads and prevents instruction reordering
C Makes operations atomic
D Automatically synchronizes all methods
Correct Answer:  B. Visibility of changes across threads and prevents instruction reordering
EXPLANATION

volatile ensures that changes to a variable are immediately visible to all threads and prevents the JVM from reordering instructions. However, it doesn't make operations atomic.

Take Test
Q.18 Medium Multithreading
Which Java class provides thread-safe operations using Compare-And-Swap (CAS)?
A Vector
B Collections.synchronizedList()
C AtomicInteger
D ConcurrentHashMap
Correct Answer:  C. AtomicInteger
EXPLANATION

AtomicInteger and other Atomic* classes use CAS operations for lock-free thread-safe operations. ConcurrentHashMap uses segment-based locking, not CAS.

Take Test
Q.19 Medium Multithreading
What is the purpose of the yield() method in Java threading?
A To permanently stop the current thread
B To suggest that the current thread should yield CPU to other threads of equal priority
C To make a thread wait indefinitely
D To increase thread priority
Correct Answer:  B. To suggest that the current thread should yield CPU to other threads of equal priority
EXPLANATION

yield() is a hint to the thread scheduler that the current thread is willing to yield its current use of CPU. It doesn't guarantee the thread will yield, as scheduling is JVM-dependent.

Take Test
Q.20 Medium Multithreading
Consider the code:
synchronized void method1() { wait(); }
If wait() is called without a lock, what happens?
A The thread waits indefinitely
B IllegalMonitorStateException is thrown
C The method returns normally
D Compilation error occurs
Correct Answer:  B. IllegalMonitorStateException is thrown
EXPLANATION

wait() must be called from within a synchronized block or method. If called outside synchronized context, it throws IllegalMonitorStateException at runtime.

Take Test
IGET
iget AI
Online · Ask anything about exams
Hi! 👋 I'm your iget AI assistant.

Ask me anything about exam prep, MCQ solutions, study tips, or strategies! 🎯
UPSC strategy SSC CGL syllabus Improve aptitude NEET Biology tips