Java Programming — Multithreading
Java OOP, collections, multithreading
50 Questions 10 Topics Take Test
Advertisement
Showing 1–10 of 50 questions in Multithreading
Q.1 Medium Multithreading
A multi-threaded application experiences poor performance despite having adequate CPU cores. Code inspection reveals frequent calls to synchronized blocks on shared objects. Which modern Java feature (2024-25) could optimize this without major refactoring?
A Virtual Threads with appropriate lock strategies
B Increasing thread pool size
C Using volatile keyword everywhere
D Converting all methods to static
Correct Answer:  A. Virtual Threads with appropriate lock strategies
EXPLANATION

Virtual Threads (Project Loom, stable in Java 21+) allow massive parallelism with lightweight threads, reducing contention overhead. They enable better scaling than increasing pool size. volatile doesn't help with synchronized block contention, and static conversion is inappropriate.

Take Test
Q.2 Medium Multithreading
In a producer-consumer scenario using BlockingQueue, what happens when a consumer thread calls take() on an empty queue?
A It throws NoSuchElementException immediately
B It blocks until a producer adds an element
C It returns null
D It spins in a busy-wait loop
Correct Answer:  B. It blocks until a producer adds an element
EXPLANATION

BlockingQueue's take() method blocks the calling thread until an element becomes available. This is safer and more efficient than busy-waiting. NoSuchElementException is thrown by non-blocking operations like remove().

Take Test
Q.3 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.4 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
Q.5 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
Advertisement
Q.6 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.7 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.8 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.9 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
Q.10 Medium Multithreading
What will happen if you try to call start() on a thread that has already completed execution?
A The thread will start again
B IllegalThreadStateException will be thrown
C The program will hang
D No error, start() will be ignored
Correct Answer:  B. IllegalThreadStateException will be thrown
EXPLANATION

Once a thread completes (reaches TERMINATED state), calling start() again throws IllegalThreadStateException. A thread can only be started once.

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