Implementation of thread Pool in java
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<Runnable> workQueue);
public ThreadPoolExecutor(int CorePoolSize,int maximumPoolSize,
long keepAliveTime,timeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadfactory);
public ThreadPoolExecutor(int CorePoolSize,int maximumPoolSize,
long keepAliveTime,timeUnit unit,
BlockingQueue<Runnable> workQueue
RejectedExecutionHandler handler);
public ThreadPoolExecutor(int CorePoolSize,int maximumPoolSize,
long keepAliveTime,timeUnit unit,
BlockingQueue<Runnable> 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<Runnable>());
Task[] tasks = new Task[nTask];
for(int i =0;i<ntask;i++){
tasks[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.
Read more post on Implementation of thread Pool in java Java Oracle ADF thread pool threadexecutor




Comments
See this blog:
http://www.kimchy.org/juc-executorservice-gotcha/
Thanks for posting, I’ll definitely be subscribing to your blog.
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.
@ 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……………….
All the latest [url=http://www.weinthemix.com]music[/url] mixtapes from your favorite Djs.
Visit: http://www.weinthemix.com
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.
Trackbacks