Java newFixedThreadPool example

In this tutorial, we will learn about Executor’s newFixedThreadPool factory method.
In the last tutorial, I have shared an introduction to ThreadPoolExecutor. If you are not aware of concepts of ThreadPoolExecutor, you should go through that first.

Executor’s newFixedThreadPool factory method :

This method returns ThreadPoolExecutor whose maximum size(let’s say n threads) is fixed.If all n threads are busy performing the task and additional tasks are submitted, then they will have to be in the queue until a thread is available.


Java newFixedThreadPool example:

Let’s create a very simple example.

Step 1: Create a Runnable task named "".

Step 2: Create a class named This will be our main class.

Let’s run above program to check the output:

Starting LoopTask 1
Starting LoopTask 3
Starting LoopTask 2
Executing LoopTask 3 with pool-1-thread-3====1
Executing LoopTask 1 with pool-1-thread-1====1
Executing LoopTask 3 with pool-1-thread-3====2
Executing LoopTask 2 with pool-1-thread-2====1
Executing LoopTask 3 with pool-1-thread-3====3
Executing LoopTask 1 with pool-1-thread-1====2
Executing LoopTask 3 with pool-1-thread-3====4
Executing LoopTask 2 with pool-1-thread-2====2
Executing LoopTask 3 with pool-1-thread-3====5
Executing LoopTask 3 with pool-1-thread-3====6
Executing LoopTask 1 with pool-1-thread-1====3
Executing LoopTask 3 with pool-1-thread-3====7
Executing LoopTask 2 with pool-1-thread-2====3
Executing LoopTask 3 with pool-1-thread-3====8
Executing LoopTask 1 with pool-1-thread-1====4
Executing LoopTask 3 with pool-1-thread-3====9
Executing LoopTask 2 with pool-1-thread-2====4
Executing LoopTask 3 with pool-1-thread-3====10
Executing LoopTask 1 with pool-1-thread-1====5
Executing LoopTask 1 with pool-1-thread-1====6
Ending LoopTask 3
Executing LoopTask 2 with pool-1-thread-2====5
Executing LoopTask 2 with pool-1-thread-2====6
Executing LoopTask 2 with pool-1-thread-2====7
Executing LoopTask 2 with pool-1-thread-2====8
Executing LoopTask 2 with pool-1-thread-2====9
Executing LoopTask 1 with pool-1-thread-1====7
Executing LoopTask 2 with pool-1-thread-2====10
Starting LoopTask 4
Ending LoopTask 2
Executing LoopTask 1 with pool-1-thread-1====8
Starting LoopTask 5
Executing LoopTask 4 with pool-1-thread-3====1
Executing LoopTask 5 with pool-1-thread-2====1
Executing LoopTask 1 with pool-1-thread-1====9
Executing LoopTask 1 with pool-1-thread-1====10
Ending LoopTask 1
Executing LoopTask 5 with pool-1-thread-2====2
Executing LoopTask 4 with pool-1-thread-3====2
Executing LoopTask 4 with pool-1-thread-3====3
Executing LoopTask 5 with pool-1-thread-2====3
Starting LoopTask 6
Executing LoopTask 5 with pool-1-thread-2====4
Executing LoopTask 4 with pool-1-thread-3====4
Executing LoopTask 5 with pool-1-thread-2====5
Executing LoopTask 5 with pool-1-thread-2====6
Executing LoopTask 6 with pool-1-thread-1====1
Executing LoopTask 6 with pool-1-thread-1====2
Executing LoopTask 6 with pool-1-thread-1====3
Executing LoopTask 6 with pool-1-thread-1====4
Executing LoopTask 5 with pool-1-thread-2====7
Executing LoopTask 4 with pool-1-thread-3====5
Executing LoopTask 4 with pool-1-thread-3====6
Executing LoopTask 4 with pool-1-thread-3====7
Executing LoopTask 4 with pool-1-thread-3====8
Executing LoopTask 5 with pool-1-thread-2====8
Executing LoopTask 6 with pool-1-thread-1====5
Executing LoopTask 5 with pool-1-thread-2====9
Executing LoopTask 4 with pool-1-thread-3====9
Executing LoopTask 4 with pool-1-thread-3====10
Executing LoopTask 5 with pool-1-thread-2====10
Ending LoopTask 5
Executing LoopTask 6 with pool-1-thread-1====6
Ending LoopTask 4
Executing LoopTask 6 with pool-1-thread-1====7
Executing LoopTask 6 with pool-1-thread-1====8
Executing LoopTask 6 with pool-1-thread-1====9
Executing LoopTask 6 with pool-1-thread-1====10
Ending LoopTask 6

We have used new newFixedThreadPool, so when we have submitted 6 tasks, 3 new threads will be created and will execute 3 tasks. Other 3 tasks will wait in wait queue. As soon as any task will be completed by thread, another task will be picked by this thread and will execute it.
That’s all about Java newFixedThreadPool example.

You may also like:

Error: View 12d15fexqk may not exist

Was this post helpful?


You may also like:

Related Posts

  • Difference between Runnable and Callable in java
    16 December

    Difference between Runnable and Callable in java

    Runnable and Callable interface both are used in the multithreading environment.Callable is available in java.util.concurrent.Callable package and Runnable in java.lang.Thread. Difference between Runnable and Callable interface in java Runnable was introduced in java 1.0 version While Callable is an extended version of Runnable and introduced in java 1.5 to address the limitation of Runnable. Runnable […]

  • 13 June

    Java Executor framework tutorial with example

    Table of ContentsExecutorExecutorServiceScheduledExecutorServiceExecutorsThreadPoolExecutor Java 5 has introduced new framework called Executor Framework for managing threads.We have already seen before how to create a thread. If you have noted, we need to create an object of thread class using new Thread(runnableObject), so we need to create thread object for each task.Imagine a situation where you have […]

  • Java ExecutorCompletionService
    09 June

    Java ExecutorCompletionService

    Table of ContentsWhy you may need to use ExecutorCompletionService:Java ExecutorCompletionService example: In this post, we will see about Java ExecutorCompletionService example. ExecutorCompletionService class implements CompletionService. This class returns Future object in completion order. Why you may need to use ExecutorCompletionService: Let’s understand with the help of scenario: Let’s say you have 5 tasks, you submit it to the […]

  • 05 June

    Java newSingleThreadExecutor example

    Table of ContentsSyntax:Java newSingleThreadExecutor example:Difference between newSingleThreadExecutor and newFixedThreadPool(1): In this tutorial, we will learn about Executor’s newSingleThreadExecutor factory method. In the last tutorial, I have shared an introduction to ThreadPoolExecutor. If you are not aware of concepts of ThreadPoolExecutor, you should go through that first. Executor’s newSingleThreadExecutor factory method : This method returns thread […]

  • 29 May

    Java ScheduledThreadPoolExecutor Example

    Table of ContentsJava ScheduledThreadPoolExecutor Example:ScheduledThreadPoolExecutor’s scheduleAtFixedRate example:ScheduledThreadPoolExecutor’s scheduleWithFixedDelay example: There are multiple ways to schedule a task in java. We have already Java timer to schedule a task but the problem with timers task is that you can execute one task at a time.So if the current task takes longer subsequent job will be delayed. […]

  • Java FutureTask example
    28 May

    Java FutureTask example

    Table of ContentsJava FutureTask example:Explanation: In this tutorial, we will see about Java FutureTask example. FutureTask class has been introduced in JDK 5 with Executor Framework. FutureTask class is the concrete implementation of the Future object and provides methods for start and cancel the task.It also provides method to see if the computation is done […]

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe to our newletter

Get quality tutorials to your inbox. Subscribe now.