Jonathan,
The language of threads and fibres does not really work well with Go,
or any other language with a structured concurrency and parallelism
model. These terms are only meaningful in low-level languages where the
programmer is exposed to them explicitly.
Languages with structured concurrency and parallelism models are
invariably based on a thread pool (which should be opaque to the
programmer) and tasks that are worked on inside the pool. Go's
goroutines are tasks that are worked on by a thread pool. Each task
should be what would traditionally be considered a single threaded
code.
> I'm hoping someone here can give me a better answer and description
> of:
>
> 1) Threading / Fiber concept
Threads used to be what fibres are now because threads moved from being
pure user space things to being kernel supported things.
Rather than replicate a long explanation, you might want to get a CS
final year concurrency and parallelism text book, or for a quick
explanation the Wikipedia pages are not entirely wrong.
https://en.wikipedia.org/wiki/Thread_(computing)
https://en.wikipedia.org/wiki/Fiber_(computer_science)
> 2) Goroutines and their association with the terminology of "fibers"
Whatever previous email list threads (sic) have decided, and there have
been many threads on this topic, it is actually irrelevant whether
goroutines match any specific definition of fibre since they must be
thought of as tasks that are submitted to a thread pool for execution.
Hopefully this has helped even if it has not directly addressed the
questions asked.
--
Russel.
=============================================================================
Dr Russel Winder t:
+44 20 7585 2200 voip:
sip:russel...@ekiga.net
41 Buckmaster Road m:
+44 7770 465 077 xmpp:
rus...@winder.org.uk
London SW11 1EN, UK w:
www.russel.org.uk skype: russel_winder