A little of coordination for Rosettacode
Jos van Uden
usenet at fwend.com
Wed Mar 27 07:17:34 PDT 2013
On 27-3-2013 0:20, bearophile wrote:
> This task has just a Tango entry:
> http://rosettacode.org/wiki/Concurrent_computing
>
>
> So I am writing a Phobos version. This seems to work as requested:
>
>
> import std.stdio, std.random, std.parallelism, core.thread, core.time;
>
> void main() {
> foreach (m; ["Enjoy", "Rosetta", "Code"])
> task!((s) {
> Thread.sleep(uniform(0, 1000).dur!"msecs");
> s.writeln;
> })(m).executeInNewThread;
> }
>
>
>
> I have also tried with a parallel foreach, the syntax is cleaner, but to me it always print the strings in the given order (so it's not doing what the task requires), do you know why?
>
>
> import std.stdio, std.random, std.parallelism, core.thread, core.time;
>
> void main() {
> foreach (s; ["Enjoy", "Rosetta", "Code"].parallel(1)) {
> Thread.sleep(uniform(0, 1000).dur!"msecs"); // Can't use UFCS.
> s.writeln;
> }
> }
Output on my system:
C:\test
Rosetta
Enjoy
Code
C:\test
Code
Enjoy
Rosetta
C:\test
Enjoy
Rosetta
Code
C:\test
Enjoy
Code
Rosetta
C:\test
Code
Enjoy
Rosetta
More information about the Digitalmars-d-learn
mailing list