Click here to watch in Youtube :
Click the below Image to Enlarge
![]() |
| Java Tutorial: Java Threads (Cached Thread pool in java | Java cached thread pool) |
![]() |
| Java Tutorial: Java Threads (Cached Thread pool in java | Java cached thread pool) |
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class ThreadPoolTest
{
public static void main(String[] args)
{
int numOfCallableTasks = 4;
ExecutorService executorService = Executors.newCachedThreadPool();
CallableTask callableTasks[] = new CallableTask[numOfCallableTasks];
Future<?> futures[] = new Future[numOfCallableTasks];
for (int i = 0; i < numOfCallableTasks; i++)
{
callableTasks[i] = new CallableTask(i);
futures[i] = executorService.submit(callableTasks[i]);
}
for (int i = 0; i < numOfCallableTasks; i++)
{
try
{
System.out.println("Ending task : " + futures[i].get());
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}
import java.util.concurrent.Callable;
public class CallableTask implements Callable<Integer>
{
private int taskNumber;
CallableTask(int taskNumber)
{
this.taskNumber = taskNumber;
}
public Integer call()
{
for (int i = 0; i <= 100; i += 20)
{
// Perform some work ...
System.out.println(Thread.currentThread().getName()
+ " taskNumber : " + taskNumber + ", percent complete: "
+ i);
try
{
Thread.sleep((int) (Math.random() * 1000));
}
catch (InterruptedException e)
{
}
}
return (taskNumber);
}
}
pool-1-thread-2 taskNumber : 1, percent complete: 0
pool-1-thread-1 taskNumber : 0, percent complete: 0
pool-1-thread-3 taskNumber : 2, percent complete: 0
pool-1-thread-4 taskNumber : 3, percent complete: 0
pool-1-thread-2 taskNumber : 1, percent complete: 20
pool-1-thread-4 taskNumber : 3, percent complete: 20
pool-1-thread-1 taskNumber : 0, percent complete: 20
pool-1-thread-3 taskNumber : 2, percent complete: 20
pool-1-thread-4 taskNumber : 3, percent complete: 40
pool-1-thread-3 taskNumber : 2, percent complete: 40
pool-1-thread-2 taskNumber : 1, percent complete: 40
pool-1-thread-4 taskNumber : 3, percent complete: 60
pool-1-thread-3 taskNumber : 2, percent complete: 60
pool-1-thread-2 taskNumber : 1, percent complete: 60
pool-1-thread-1 taskNumber : 0, percent complete: 40
pool-1-thread-2 taskNumber : 1, percent complete: 80
pool-1-thread-3 taskNumber : 2, percent complete: 80
pool-1-thread-2 taskNumber : 1, percent complete: 100
pool-1-thread-4 taskNumber : 3, percent complete: 80
pool-1-thread-1 taskNumber : 0, percent complete: 60
pool-1-thread-4 taskNumber : 3, percent complete: 100
pool-1-thread-3 taskNumber : 2, percent complete: 100
pool-1-thread-1 taskNumber : 0, percent complete: 80
pool-1-thread-1 taskNumber : 0, percent complete: 100
Ending task : 0
Ending task : 1
Ending task : 2
Ending task : 3



No comments:
Post a Comment