Blocking Queue Implementation in Java

In this blog, I am going to explain how to implement a thread-safe, blocking queue in Java using low-level concurrency primitives like wait(), notify() and notifyAll().

Java is multi-threaded language and in concurrent programming BlockingQueue plays a crucial role in managing producer-consumer problems. While Java provides robust implementations like ArrayBlockingQueue and LinkedBlockingQueue, understanding how to build a custom blocking queue from scratch helps you grasp core concurrency principles.

Dependency Inversion Principle in Java

In this blog post, I am going to explain what is dependency inversion principle, why is it important and how to implement dependency inversion principle in java.

When i started learning about SOLID principles, the dependency inversion was the most confusing principle for me to fully understand. This article explains this principle in the easiest way possible, with multiple code examples for better understanding.