From: Oliver Kowalke (k-oli_at_[hidden])
Date: 2008-06-24 10:00:52
My implementations are more influenced by the java threadpool design.
I took a quick look at the library from Philipp Henkel and I can say only what's different.
Please keep in mind that my assumptions about Phillips lib may be wrong:
- In Philipps library the pool is resized by the user. In my libs the threads are managed by the pool itself (at least the adaptive pool lets increase and decrease the worker threads depending on the idle time).
- Philipps lib contains a future but doesn't use it. At least the pool::schedule function only returns a boolean. In my libs a future or a task object (containing a future) is returned. So the chaining or the lazy evaluation of tasks is only supported my my proposal.
- My libraries allow to cancel the submitted task (v1 - cancel the future == remove it from the queue; v2 - interrupt task == remove task from queue or interupt running task)
- My lib provides bounded and unbounded queues (bounded queue == limiting the number of pending tasks). The rendezvous channel may be of limited use.
- I also provide a possibility for smart queuing which influences how task inserted and extracted from the channel (allows for instance to replace old pending task be new one).
-------- Original-Nachricht --------
> Datum: Tue, 24 Jun 2008 16:20:57 +0300
> Von: "Moshe Matitya" <Moshe.Matitya_at_[hidden]>
> An: boost_at_[hidden]
> Betreff: Re: [boost] interrest in a thread-pool library
> How would you say your thread-pool libraries compare with Philipp
> Henkel's threadpool library [<http://threadpool.sourceforge.net/>]?
> > -----Original Message-----
> > From: boost-bounces_at_[hidden]
> > On Behalf Of k-oli_at_[hidden]
> > Sent: Wednesday, June 11, 2008 10:21 PM
> > To: boost_at_[hidden]
> > Subject: [boost] interrest in a thread-pool library
> > Hi,
> > I follow the discussion about boost.future since the review request
> > Braddock.
> > I'm using Braddocks future implementation for my threadpool library -
> > you
> > are interessted in (I've uploaded two versions in the boost
> > vault/Concurrent
> > Programming).
> > The library provides:
> > - thread creation policies: determines the managemnt of worker threads
> > - fixed set of threads in pool
> > - create workerthreads on demand (depending on context)
> > - let worker threads ime out after certain idle time
> > - channel policies: manages access to queued tasks
> > - bounded channel with high and low watermark for queuing tasks
> > - unbounded channel with unlimited numer of queued tasks
> > - rendezvous syncron hand-over between producer and consumer
> > - queueing policy: determines how tasks will be removed from channel
> > - FIFO
> > - LIFO
> > - priority queue (attribute assigned to task)
> > - smart insertions and extractions (for instance remove oldest task
> > with
> > certain attribute by newst one)
> > - tasks can be chained and lazy submit of taks is also supported
> > to
> > Braddocks future library).
> > I've uploaded two versions.
> > In version 1 a future is returned by submit of a task. Canceling the
> > future
> > means removing the task form the channel if it is still pending.
> > Version 2 returns a task object from the submit function. The task it
> > can
> > be interrupted if its is cooperative (means it has some interruption
> > points
> > in its code -> this_thread::interruption_point() ).
> > Oliver
> > _______________________________________________
> > Unsubscribe & other changes:
> > http://lists.boost.org/mailman/listinfo.cgi/boost
> Unsubscribe & other changes:
-- GMX startet ShortView.de. Hier findest Du Leute mit Deinen Interessen! Jetzt dabei sein: http://www.shortview.de/?mc=sv_ext_mf@gmx
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk