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.

paulo
See this blog:
http://www.kimchy.org/juc-executorservice-gotcha/
How to Make Thousands of Dollars Posting Links on Google
Thanks for posting, I’ll definitely be subscribing to your blog.
Stewart Smith
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.
Vinay
@ 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……………….
shanejoes
this is really good
mmmm
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.
Rajesh Kumar
Thanks for this article on thread pool
Yogendra Sharma
Thanks for your elaborated posts.I appreciate your effort of writing this code.Please keep posting more.
Manisha
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?