Multithreading Interview Questions
Busy Spinning, also known as Busy-waiting, is a technique in which one thread waits
for some condition to happen, without calling wait or sleep methods and releasing
the CPU. In this condition, one can pause a thread by making it run an empty loop for
a certain time period, and it does not even give CPY control. Therefore, it is used to
preserve CPU caches and avoid the cost of rebuilding cache.
33. What is ConcurrentHashMap and Hashtable? In java, why is
ConcurrentHashMap considered faster than Hashtable?
ConcurrentHashMap: It was introduced in Java 1.5 to store data using multiple
buckets. As the name suggests, it allows concurrent read and writes operations to the
map. It only locks a certain portion of the map while doing iteration to provide
thread safety so that other readers can still have access to the map without waiting
for iteration to complete.
Hashtable: It is a thread-safe legacy class that was introduced in old versions of java
to store key or value pairs using a hash table. It does not provide any lock-free read,
unlike ConcurrentHashMap. It just locks the entire map while doing iteration.
ConcurrentHashMap and Hashtable, both are thread-safe but ConcurrentHashMap
generally avoids read locks and improves performance, unlike Hashtable.
ConcurrentHashMap also provides lock-free reads, unlike Hashtable. Therefore,
ConcurrentHashMap is considered faster than Hashtable especially when the number
of readers is more as compared to the number of writers.
Dostları ilə paylaş: