avalon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Donald <dona...@apache.org>
Subject ThreadPool rework re-posting
Date Wed, 15 Aug 2001 15:49:26 GMT
> > Unfortunately that doesn't cut it as usually you need to have Thread
> > implement a particular class so it replaces itself back in pool after it
> > has done a run() on it' client. The way I am just about to redesign the
> > Avalon thread pool is as follows
> >
> > interface ThreadPool
> > {
> >   void executeAndWait( Runnable work ) throws ThreadException;
> >   void executeAndWait( Executable work ) throws ThreadException;
> >
> >   ThreadControl execute( Runnable work );
> >   ThreadControl execute( Executable work );
> > }
> >
> > class ThreadException
> > {
> > ...
> >   Throwable getRootCause() { ... }
> > ...
> > }
> >
> > interface ThreadControl
> > {
> >   void interupt() throws Exception;
> >   boolean isValid();
> >   boolean isFinished();
> >   Throwable getThrowable();
> > }
> >
> > //Method gets called for thread hook right before you dispatch work
> > interface ThreadHook
> > {
> >   void setupThread() {}
> > }
> >
> > executeAndWait is useful when you are using the pool to cross
> > thread/protection boundaries (Very very useful in writing software like
> > tomcat/james/Avalon-phoenix).
> >
> > execute returns a control so you can control all the important features
> > of thread directly.
> >
> > ThreadHook.setupThread() is called right before a set of work is
>
> dispatched
>
> > and usually used to set name of thread, contextClassLoader and any other
> > thread local variables.
> >
> > All other thread features (ie priority, whether thread is a daemon
> > thread, etc) are determined by pool.
> >
> > I haven't found any places where the above design won't work - what do
> > you think about it?


-- 
Cheers,

Pete

*-----------------------------------------------------*
* "Faced with the choice between changing one's mind, *
* and proving that there is no need to do so - almost *
* everyone gets busy on the proof."                   *
*              - John Kenneth Galbraith               *
*-----------------------------------------------------*

---------------------------------------------------------------------
To unsubscribe, e-mail: avalon-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: avalon-dev-help@jakarta.apache.org


Mime
View raw message