Java newFixedThreadPool example

Previous
Next

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 thread pool executor 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.

Syntax:

Java newFixedThreadPool example:

Let’s create a very simple example.

Step 1: Create a Runnable task named “LoopTask.java”.

Step 2: Create a class named “FixedThreadPoolMain”. 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 task, 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.

Previous
Next

Join Our News Letter – Stay Updated

Subscribe to Awesome Java Content.




Add Comment

Join Our News Letter - Stay Updated

Subscribe to Awesome Java Content.
You can like our facebook page Java2blog