parallel
anonymous via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Nov 5 12:54:36 PST 2015
On 05.11.2015 21:43, Handyman wrote:
> foreach (i; 0..50)
> Thread.sleep(20.msecs);
>
> But then my program still says: '2 secs'. Please enlighten me.
Let's look at the line that does the `parallel` call:
foreach (dish; parallel(dishes, 1)) dish.prepare();
This means that `dishes` is processed in parallel. Multiple threads are
started to execute `prepare()` on multiple elements of `dishes` at the
same time.
Each of those `dish.prepare()` calls is done on only one thread, though.
There is not attempt to split the `prepare` action up and run parts of
it in parallel.
More information about the Digitalmars-d-learn
mailing list