Java FutureTask example

Java FutureTask example

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 or not. We can query FutureTask object and get the result of computation.
If we call get method on FutureTask object, it is blocking call and returns once the computation is done.
Let’s understand more with the example.

Java FutureTask example:

Let’s create a very simple example.

Step 1: Create a Callable task named MultiplyingTask.java.

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

Let’s run above program to check the output:

FutureTask1 output=200
Waitng for futureTask2 for completion
FutureTask2 output=800
Completed both the future task, shutting down the executors

Explanation:

  • Create two callable task named multiplyingTask1 and multiplyingTask2. Please note that we have given sleep time as 2000 for multiplyingTask1 and 4000 for multiplyingTask2 so multiplyingTask2 will take more time than multiplyingTask1.
  • Created two FutureTask objects named futureTask1 and futureTask2 by passing multiplyingTask1 and multiplyingTask2 respectively.
  • Put an infinite loop condition with while(true)
  • !futureTask1.isDone() checks for completion of futureTask1, if not done yet, we have called futureTask1.get(), as get method is blocking operation, current thread will wait for futureTask1 to complete.
  • Once futureTask1 is done, we check !futureTask2.isDone() and above step is repeated for futureTask2.
  • Once both the task i.e. futureTask1 and futureTask2 are done, we call shutdown() method on executors and return from it.

That’s all about Java FutureTask example.


import_contacts

You may also like:

Related Posts

  • Get Thread Id in Java
    30 September

    Get Thread Id in Java

    Table of ContentsGet Thread Id in JavaGet Thread Id of Current Running ThreadGet Thread id of Multiple Threads In this article, we will learn to get thread id of a running thread in Java. An Id is a unique positive number generated at the time of thread creation. This id remains unchanged during the lifetime […]

  • ArrayBlockingQueue in java
    19 September

    ArrayBlockingQueue in java

    Table of ContentsWhat is BlockingQueueArrayBlockingQueueFeaturesConstructorsMethodsUsage ScenariosImplementation CodeSummary In this article, we will understand the Java concurrent queue, BlockingQueue. We will then go deep into it’s one of the implementation, ArrayBlockingQueue. What is BlockingQueue BlockingQueue interface was introduced in Java 5 under concurrent APIs and it represents a thread-safe queue in which elements can be added […]

  • Delay java program by few seconds
    11 December

    Delay Java program for few secs

    Table of ContentsUsing Thread.sleepUsing TimeUnit.XXX.sleep methodUsing ScheduledExecutorService In this post, we will see how to delay java program for few secs. We need to delay a java programs in many situation where we want to wait for some other task to finish. There are multiple ways to delay execution of java program. Using Thread.sleep Sleep […]

  • 29 May

    How to print even and odd numbers using threads in java

    Table of ContentsProblemSolution 1Print even and odd numbers using threads in java Solution 2: Using remainder In this post, we will see how to print even and odd numbers using threads in java. see also: How to print sequence using 3 threads in java Problem You are given two threads. You need to print odd […]

  • wait(),notify() and notifyAll() in java
    22 October

    Why wait(), notify() And notifyAll() methods are in Object Class

    In this post, we will see why wait(), notify() And notifyAll() methods are in Object Class And Not in Thread Class. This is one of the most asked java multithreading interview questions. You might know that wait(), notify() And notifyAll() Methods are in Object class and do you know the reason for the same? Let’s […]

  • Custom BlockingQueue in java
    16 October

    Custom BlockingQueue implementation in java

    In this post, we will see how to create your own custom BlockingQueue. This is one of the most asked java interview questions. You need to implement your own BlockingQueue. This question helps interviewer to get your understanding of multithreading concepts. Here is simple implementation of BlockingQueue. We will use array to store elements in […]

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.