On 2011-03-24 03:00:01 -0400, Sönke Ludwig
<lud...@informatik.uni-luebeck.de> said:
Am 24.03.2011 05:32, schrieb dsimcha:
In addition to improving the documentation, I added
Task.executeInNewThread() to allow Task to be useful without a TaskPool.
(Should this have a less verbose name?)
The threading system I designed for the company I work for uses
priority per task to control which tasks can overtake others. A special
priority is out-of-bands (the name my be debatable), which will
guarantee that the task will run in its own thread so it can safely
wait for other tasks. However, those threads that process OOB tasks are
also cached in the thread pool and reused for new OOB tasks. Only if
the number of parallel OOB tasks goes over a specific number, new
threads will be created and destroyed. This can safe quite a bit of
time for those tasks.
Both kinds of priority have been very useful and I would suggest to put
at least the executeInNewThread() method into ThreadPool to be later
able to make such an optimization.
The task priority thing in general may only be necessary for complex
applications with user interaction, where you have to statisfy certain
interactivity needs. I wouldn't be too sad if this is not implemented
now, but it would be good to keep it in mind as a possible improvement
for later.
Do you think having multiple task pools each with a different thread
priority would do the trick? Simply put tasks in the task pool with the
right priority... I had a similar use case in mind and this is what I
proposed in the previous discussion.
--
Michel Fortin
michel.for...@michelf.com
http://michelf.com/