Category Archives: Concurrency

CountDownLatch concurrency example in java

A CountDownLatch allows one or more threads to wait until a set of operations being performed in other threads completes. A CountDownLatch is initialized with a given count. The await methods block until the current count reaches zero due to invocations of the countDown() method. 1. Scenario: Synchronize resources using CountDownLatch (concurrency) Friends has planned… Read More »

Concurrency – Synchronize resources using ReentrantLock in java (example)

Given shared resources in java. Synchronize shares resources using Lock interface. We will use ReentrantLock to protect share resources. A lock is a tool for controlling access to a shared resource by multiple threads. Lock implementations provide more extensive locking operations than can be obtained using synchronized methods and statements. We create five threads, which… Read More »

Concurrency – Producer & Consumer in java (Wait notify example)

Given multi-threading application in java. Create Producer & Consumer threads. Producer thread will produces the data. Consumer thread will consumes the data. Synchronize Producer & Consumer thread using wait & notify methods. 1. DataStore class: DataStore class contains LinkedList to store integer values. DataStore class contains two synchronized methods i.e. get & put put method:… Read More »

Inter thread communication in java (Example/ PipedInputStream /PipedOutputStream)

Inter thread communication is very common phenomenon. There are many ways to achieve inter thread communication. In current post, we will use pipes to achieve thread communication. Java has set of classes named PipedOutputStream & PipedInputStream to communicate between threads. We will create couple of threaders namely producer & consumer. Producer thread will produce the… Read More »

Thread join example using Runnable interface in java

Create a task by implementing Runnable interface. We will demonstrate join method and its impact on execution on multiple threads. We will write couple of methods demoThreadJoin: Method will create multiple threads. Output of a method will demonstrates the execution of join method. Threads will execute one after another (i.e. thread-1 to thread-4). demoWithoutThreadJoin: Method… Read More »

Create or simulate deadlock in java (multithreading & example)

What is deadlock? The deadlock is the situation, which occurs when one thread is waiting for the resource, which has been acquired by second thread and second thread is waiting for the resource which has been acquired by first thread. This cyclic dependency results in a deadlock situation. Example of deadlock situation in java Suppose, we… Read More »