GO: Serial vs Concurrent Execution

We describe serial vs concurrent execution. GO has powerful facilities for concurrent programming. For example, in any language (including GO) we can serially execute two routines:

routine1(…)
routine2(…)

This would cause routine1 to be executed to completion before routine2 is started.

However, in GO, we can also use the following construct:
go routine1(…)
go routine2(…)

Here routine1 and routine2 are goroutines that run concurrently.