[concurrency-interest] Setting a Thread name in a ThreadPool

David Harrigan dharrigan at gmail.com
Thu Oct 26 09:08:45 EDT 2006


Hi,

Ooh, that's quite a nice one. I like it.

-=david=-

On 10/26/06, Kevin Condon <conivek at gmail.com> wrote:
>
> You can use:
>
> ThreadFactory factory = new ThreadFactory() {
>   public Thread newThread(Runnable r) {
>     return new Thread(r, "threadname");
>   }
> };
> Executors.newCachedThreadPool(factory);
>
> Kevin
>
> On 10/26/06, Mike Quilleash <mike.quilleash at subexazure.com> wrote:
> > I asked the same question a while back.  The solution for me was to wrap
> > up whatever you are submitting to the executor with a Runnable.
> >
> > Something like
> >
> > Public class ThreadRenameWrapper implements Runnable
> > {
> >  private final String name;
> >  private final Runnable runnable;
> >
> >  public ThreadRenameWrapper( String name, Runnable runnable )
> >  {
> >    this.name = name;
> >    this.runnable = runnable;
> >  }
> >
> >  public void run()
> >  {
> >    Thread thread = Thread.currentThread();
> >    String oldName = thread.getName();
> >
> >    thread.setName( name );
> >    try
> >    {
> >      runnable.run();
> >    }
> >    finally
> >    {
> >      thread.setName( oldName );
> >    }
> >  }
> > }
> >
> > HTH.
> >
> > -----Original Message-----
> > From: concurrency-interest-bounces at cs.oswego.edu
> > [mailto:concurrency-interest-bounces at cs.oswego.edu] On Behalf Of David
> > Harrigan
> > Sent: 26 October 2006 13:13
> > To: concurrency-interest at cs.oswego.edu
> > Subject: [concurrency-interest] Setting a Thread name in a ThreadPool
> >
> >
> > Hi,
> >
> > Previously, if I wanted to set a thread name, I could so something like
> > this:
> >
> > new Thread(new RunnableTask(), "DoSomethingWonderfulThread").start();
> >
> > now, if I'm delgating over to an Executors, like
> > Executors.newCachedThreadPool(), and using that to execute my thread:
> >
> > ExecutorService s = Executors.newCachedThreadPool(); s.execute(new
> > RunnableTask());
> >
> > The execute method isn't overloaded to provide a name, so, how do I go
> > about setting the Thread name?
> >
> > -=david=-
> > --
> > View this message in context:
> > http://www.nabble.com/Setting-a-Thread-name-in-a-ThreadPool-tf2513566.ht
> > ml#a7009924
> > Sent from the JSR166 Concurrency mailing list archive at Nabble.com.
> >
> > _______________________________________________
> > Concurrency-interest mailing list
> > Concurrency-interest at altair.cs.oswego.edu
> > http://altair.cs.oswego.edu/mailman/listinfo/concurrency-interest
> >
> >
> >  This e-mail is bound by the terms and conditions described at
> http://www.subexazure.com/mail-disclaimer.html
> >
> >
> > _______________________________________________
> > Concurrency-interest mailing list
> > Concurrency-interest at altair.cs.oswego.edu
> > http://altair.cs.oswego.edu/mailman/listinfo/concurrency-interest
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: /pipermail/attachments/20061026/b9872bdf/attachment.html 


More information about the Concurrency-interest mailing list