10 advanced Java Concurrency Interview question answers for Senior Experienced dev
Java Concurrency Interview Questions and Answers
Java Concurrency is favorite topic in various Java interviews. Most of the questions on multi-threading are asked from Java Concurrency API. In this article we will see some advanced concurrency and threading interview question which is mostly asked at senior and experience level programmers in Java interviews. It is assumed that you have basic knowledge of What is thread in java, How thread works and you are familiar with concept of wait and notify in Java which is used for inter-thread communication. you can also look 10 Java tricky question as I have covered some thread related question and answers there as well.
Let's see these advanced Java Concurrency Interview questions, I don't know answers for all questions and I will give answers which I know but most of the answers can be found by doing Google as well.
Java Concurrency and thread Questions answers
1) What is difference between CountDownLatch and CyclicBarrier in Java?
This is the most popular concurrency Questions, almost always appear in Java concurrency and threading interviews. main difference between CountDownLatch and CyclicBarrier is that, you cannot reuse CountDownLatch but you can reuse CyclicBarrier once its finished and barrier is broken. this is in fact a tricky concurrency question because Java programmer some time confuse between CountDownLatch and CyclicBarrier.
2) What is ReentrantLock ? What is advantage of using Lock API in Java?
This is another advanced Concurrency Questions for java programmer. Reentrant lock is an implementation of Lock interface which is an alternative of synchronized keyword in Java.
3) What is difference between ReadWriteLock and ReentrantLock in Java?
Both are Lock implementation, I guess ReadWriteLock provides two separate locks for reading and writing operation which can effectively used to increase concurrency level just like Java did with ConcurrentHashMap. You can also check google for answer of this Java concurrency question.
4) What is difference between HashMap and ConcurrentHashMap in Java?
This is rather simple concurrency interview question. HashMap is not thread-safe while ConcurrentHashMap is a thread-safe class and can be used as an alternative of hashtable in Java.
5) What is difference between fail-fast and fail-safe iterator in Java?
One of my favorite Java concurrency interview question which is related to Collection classes. Fail-fast Iterators are those which fails by throwing ConcurrentModificationException once they detect any structural change in Iterator once iteration begins. while fail-safe Iterator doesn't throw ConcurrentModificationException. See fail-safe vs fail-fast Iterator in Java for more details.
6) What is difference between CopyOnWriteArrayList and ArrayList in Java?
This Java concurrency interview questions is again based on Collection and similar to earlier question difference between HashMap and ConcurrentHashMap, like HashMap, ArrayList are not thread safe and CopyOnWriteArrayList is a thread-safe Concurrent Collection and can be used as an alternative of Vector class in Java.
7) What is Thread Pool ? Why should you use Thread Pool in Java?
8) What is difference between submit() and execute() in Java?
9) What is difference between Executor and Executors in Java?
10) What is BlockingQueue in Java? How it is difference to Other collection classes in Java.
These are some advanced Core Java concurrency question, if you have more than 5 or 6 years experience, it is expected from you to know answers of these Concurrency Questions and it is must to do well in Java interviews.