About author  I am Java/oracle professional.Working on Java/J2EE technologies and i.e Java,J2ee,Oracle ADF,hibernate,J2ee,PL/sql,Apps for 4+ years.I am passionate about learning new technologies.I am sharing my knowledge. Give your views and suggestion on vinay@techartifact.com http://www.linkedin.com/in/vinaykumar2 Read more from this author


In my previous post of thread pool (http://www.techartifact.com/blogs/2009/06/what-is-thread-pool-in-java.html),I have given the theoritcal knowledge.now I came with code.Hope it will help a lot.
Java’s implementation of thread pool is based on an executor. Executor is a generic concept modeled by this interface.

Package java.util.concurrent;
Public interface Executor {
Public void execute(Runnable task);
}

You simple have to create the task and pass it on execute() method of an appropriate executor.The pool is an instance of ThreadPoolExecutor class.this class implements ExecutorService Interface which tell how to put task and how to shut down.
Example of creation of thread pool

package java.util.concurrent;
public class ThreadPoolExecutor implements ExecutorService {
public ThreadPoolExecutor(int CorePoolSize,int maximumPoolSize,
                           long keepAliveTime,timeUnit unit,
                          BlockingQueue workQueue);
public ThreadPoolExecutor(int CorePoolSize,int maximumPoolSize,
                           long keepAliveTime,timeUnit unit,
                          BlockingQueue workQueue,
                           ThreadFactory threadfactory);
public ThreadPoolExecutor(int CorePoolSize,int maximumPoolSize,
                           long keepAliveTime,timeUnit unit,
                          BlockingQueue workQueue
                          RejectedExecutionHandler handler);
public ThreadPoolExecutor(int CorePoolSize,int maximumPoolSize,
                           long keepAliveTime,timeUnit unit,
                          BlockingQueue workQueue
                          ThreadFactory threadfactory
                           RejectedExecutionHandler handler);

CorePoolSize , keepAliveTime, are the part by which we can manage the thread pool.we can use a constructor to create the task and put them in thread pool

Now we will create the task and we will put into the threadpool.here it’s the example.

import java.util.concurrent.*;
 public class ThreadPoolTest {
public static void main(String[] args) {
int nTask =Integer.parseInt(args[0]);
long n = ling.parseLong(args[1]);
int tpSize =Integer.parseInt(args[2]);

ThreadPoolExecutor tpe = new ThreadPoolExecutor(tpSize,tpSize,50000L,
                             TimeUnit.MILLISECONDS,new LinkedBlockingQueue());
Task[] tasks = new Task[nTask];
for(int i =0;itasks[i]= new Task(n,"Task " + i);
tpe.execute(task[i]);
}
tpe.shutdown();
}
}

This is implementation of thread Pool.It is easy to use.Any suggestion would be welcome.

Pin it

10 Responses to Implementation of thread Pool in java


  1. pauloNo Gravatar
    Jun 10, 2009

  2. How to Make Thousands of Dollars Posting Links on GoogleNo Gravatar
    Jun 10, 2009

    Thanks for posting, I’ll definitely be subscribing to your blog.


  3. Stewart SmithNo Gravatar
    Aug 20, 2009

    I agree with Peter. I find these post annoying as they don’t add anything to what is well documented elsewhere and understood by most, if not all, Java programmers.

    What is even more annoying is that your friend keeps recommending the posts on LinkedIn.


  4. VinayNo Gravatar
    Aug 20, 2009

    @ stewart

    i don’t understand y this post is annoying to you.If u hve understanding of smthng ,it is not necessary that everyone is have understood this concept very well.I just try to give point to point information for newbie in java.If you know smethng that does’nt mean you should comment on everythnng.It will be better if you can add some information in thread pool.That will be really appreciated.But criticizing is really bad.
    For you information there is no friend in linkein who recommend this.Ok……………….


  5. shanejoesNo Gravatar
    Feb 14, 2010

    this is really good


  6. mmmmNo Gravatar
    Jul 03, 2010

    Its only for Google adds that is why all this brilliant postings are happening. Or else no body would have bothered of writing all this.No days only to have a website and to post Google adds, lot of websites are created.


  7. Rajesh KumarNo Gravatar
    Jan 13, 2011

    Thanks for this article on thread pool


  8. Yogendra SharmaNo Gravatar
    Mar 14, 2011

    Thanks for your elaborated posts.I appreciate your effort of writing this code.Please keep posting more.


  9. ManishaNo Gravatar
    Jan 27, 2012

    Can you elaborate on this? Maybe a complete sample App? I have a method which uses HTTP connections and I want to make multiple threads so that if there is a free connection available request can be sent on that. How do I achieve that with thread pool?

Trackbacks/Pingbacks

  1. PimpThisBlog.com

Leave a Reply