3 ms·
I'm not saying their implementation isn't good, it is good. And probably message-passing is the right concurrency primitive to expose at a language level for p
by dekhn 3y ago
I'm not saying their implementation isn't good, it is good. And probably message-passing is the right concurrency primitive to expose at a language level for people who want to take advantage of multi-core machines running concurrent code.
I'm not downplaying anything; I'm expressing merely that with a title like "Goroutines: The concurrency model we all..." makes it sounds like go invented something new, but afaict, they're just a well-engineered implemention of already well-understood concurrency principles.
- zwieback 3y ago100%, as I was reading the article I was remembering the different types of concurrency mechanisms I've used and I think it's helpful to have something like goroutines as a first-class language feature but it's not new in any way. When it comes to concurrency I think it's good to go through the curriculum: - main loop + interrupt handler - processes (fork) - multi-core concerns - threads (now is a good time to learn about mutex, semaphore, critical section) - lightweight threads (fiber, coroutines, green threads): learn how they are different - async/await statemachines written by the compiler Ok, now we have the background info to make wise choices and call things by their generalized names to avoid holy wars.