Category Archives: Concurrency

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 »

Create runnable task using functional interface – java8 lambda stream (example)

1. Functional Interface java 8: The interface having one abstract method is called the functional interface. E.g. Comparator, Runnable interface. The runnable interface will look like as follows @FunctionalInterface public interface Runnable { public abstract void run(); } We have discussed about the Creating threads using runnable interface. In current post we will see how… Read More »

Page 1 of 212