Could someone please give some references to thorough explainings on these latest concurrency mechanisms

- Go: Goroutines
- Coroutines (Boost):
  - https://en.wikipedia.org/wiki/Coroutine
- http://www.boost.org/doc/libs/1_55_0/libs/coroutine/doc/html/coroutine/intro.html - D: core.thread.Fiber: http://dlang.org/library/core/thread/Fiber.html
- D: vibe.d

and how they relate to the following questions:

1. Is D's Fiber the same as a coroutine? If not, how do they differ?

2. Typical usecases when Fibers are superior to threads/coroutines?

3. What mechanism does/should D's builtin Threadpool ideally use to package and manage computations?

4. I've read that vibe.d's has a more lightweight mechanism than what core.thread.Fiber provides. Could someone explain to me the difference? When will this be introduced and will this be a breaking change?

5. And finally how does data sharing/immutability relate to the above questions?

Reply via email to