Callable Vs Runnable Interface

Both Callable and Runnable are interfaces used to define task supposed to be executed by a separate thread.Also, both of them can be used with lambda expressions. But there are key differences between the two interfaces. Callable interface can return the result of the task defined to be executed whereas Runnable does not return any […]

Java Executor Framework Tutorial

The concurrency API in Java was introduced in Java 1.5 .Java Executor framework is used to run the Runnable objects without creating new threads and reusing the existing ones as creating threads is an expensive process. It simplifies the execution of tasks in asynchronous mode. ExecutorService An ExecutorService is created using Executors factory methods. The […]

ThreadPoolExecutor and ScheduledThreadPoolExecutor

ThreadPoolExecutor ThreadPoolExecutor implements ExecutorService .It executes each submitted tasks using one of its internally pooled threads.Thread pools provide improved performance when executing large number of asynchronous tasks.This class provides many adjustable parameters and extensibility hooks. But usually ExecutorFactory methods are used to create thread pool. You can configure the no of threads in the ThreadPoolExecutor […]

How to create Threads in Java

What is a Thread? A thread is a light weight process.Java provides built in support for multithreading. A multithreaded program contain several parts than can run concurrently. Each part is a thread which has a separate thread of execution. A thread exists within a process and a single process can contain multiple threads. Lifecycle of […]