You can do concurrency on a single thread. This is the message I find it hard to get across when explaining CSP concurrency libraries.
Some people argue about usefulness of such libraries as being not native and leaky abstraction. I developed Go-style concurrency "port" to Tcl:
https://github.com/securitykiss-com/csp
and it is one of few developed-in-house things that became the productivity booster in my toolbox.
The interesting thing about it is that thanks to the expressive power of Tcl I was able to port not only the semantics but also almost completely mimic Go syntax.