3 ms·
Sorry, but having had some dealings with Ada many years ago I'm sure Go is little like it. Go has CSP in its ancestry, what with channels and goroutines, and bo
by ralph 14y ago
Sorry, but having had some dealings with Ada many years ago I'm sure Go is little like it. Go has CSP in its ancestry, what with channels and goroutines, and both are fundamental to it whereas Ada has nothing similar?
- pjmlp 14y agoGoroutines -> tasks channels -> rendezvous
- ralph 14y agoAda's tasks aren't defined to be greenlets; an implementation can make then OS threads or processes, limiting their number. And rendezvousing is more cumbersome than channels, e.g. passing a channel over a channel.
- pjmlp 14y agoI can be wrong, but as far as I know, Go language's specification also does not define how goroutines are to be implemented. Google's implementation makes use of greenlets, while gccgo is using OS threads. Further implementations might decide on others approaches. As for channels/rendezvous you might be correct, as I only played a bit with Ada.
- ralph 14y agoYou could be right about the spec. I think gccgo no longer does one OS thread per goroutine as of Go 1.0 but I've been unable to find a clear definition to point to.