Threadpools, difference between DMD and LDC

via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Aug 4 08:31:24 PDT 2014


On Monday, 4 August 2014 at 14:56:36 UTC, Philippe Sigaud via 
Digitalmars-d-learn wrote:
> On Mon, Aug 4, 2014 at 3:36 PM, Dicebot via Digitalmars-d-learn
> <digitalmars-d-learn at puremagic.com> wrote:
>> Modern default approach is to have amount of "worker" threads 
>> identical or
>> close to amount of CPU cores and handle internal scheduling 
>> manually via
>> fibers or some similar solution.
>
> That's what I guessed. It's juste that I have task that will 
> generate
> other (linked) tasks, in a DAG. I can use a thread pool of 2-8
> threads, but that means storing tasks and their relationships 
> (which
> is waiting on which, etc). I rather liked the idea of spawning 
> new
> threads when I needed them ;)

If you can live with the fact that your tasks might not be truly 
parallel (i.e. don't use busy waiting or other things that assume 
that other tasks make progress while a specific task is running), 
and you only use them for computing (no synchronous I/O), you can 
still use the fibers in core.thread:

http://dlang.org/phobos/core_thread.html#.Fiber


More information about the Digitalmars-d-learn mailing list