Processes and Channels, cf. goroutines.
Bienlein
jeti789 at web.de
Wed Feb 5 07:38:42 PST 2014
On Wednesday, 5 February 2014 at 14:40:46 UTC, Sean Kelly wrote:
> Sort of. std.concurrency uses the actor model. So it's
> messaging, but not the CSP model used by Go. We should probably
> offer both, but for now it's just actors. And because you
> basically have one channel per thread, the limiting factor to
> date is how many threads you can sanely run simultaneously.
> Actor-oriented languages typically use green threads instead of
> kernel threads so the number of threads can scale. In Erlang, a
> "process" (ie. a thread) is equivalent to a class in D, so
> there tends to be a lot of them.
On a very well equipped machine 10.000 threads is about the
maximum for the JVM. Now for D 1.000.000 kernel threads are not a
problem!? Well, I'm a D newbie and a bit confused now... Have to
ask some questions trying not to bug people. Apparently, a kernel
thread in D is not an OS thread. Does D have it's own threading
model then? Couldn't see that from what I found on dlang.org. The
measurement result for fibers is that much better as for threads,
because fibers have less overhead for context switching? Will
actors in D benefit from your FiberScheduler when it has been
released? Do you know which next version of D your FiberScheduler
is planned to be included?
In Go you can easily spawn 100.000 goroutines (aka green
threads), probably several 100.000. Being able to spawn way more
than 100.000 threads in D with little context switching overhead
as with using fibers you are basically in the same league as with
Go. And D is a really rich language contrary to Go. This looks
cool :-)
More information about the Digitalmars-d
mailing list