Concurrent Hello World in Go, Erlang, and C++
himmele.blogspot.de
himmele.blogspot.de
import std.stdio;
import std.concurrency;
void world() {
bool running = true;
while (running) {
receive(
(Tid finished) { writeln("World"); send(finished, true); },
(OwnerTerminated e) { running = false; }
);
}
}
void hello(Tid world, Tid finished) {
for (int i=0; i<1000; i++) {
write("Hello ");
send(world, thisTid);
receiveOnly!(bool)();
}
send(finished, true);
}
int main(string[] args) {
auto world = spawn(&world);
auto hello = spawn(&hello, world, thisTid);
receiveOnly!(bool)();
return 0;
}Also, "quiter" would be better spelled "quitter".
It's a good demonstration of how nice Go can be for that sort of thing. Now I just want to see a Rust example.