Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Yes there are, they are known as user space threads or fibers.


User space threads don't run in parallel, i.e. they don't take advantage of multi-core CPUs and can be blocking.

Fibers are for cooperative multitasking so no parallelism either.

Goroutines are multiplexed as needed onto system threads. http://golang.org/doc/GoCourseDay3.pdf

So they are a bit different, in the spirit of Go: they make for a simple and general solution to both parallelism and concurrency. They combine naturally with channels to give the functionality of OS threads, user threads and fibers.


As an aside: watching Pike's talk on lexing and parsing in Go really hits this point home. It shows how language support for cheap threads (goroutines) and channels really change the way you come up with an algorithm.

http://www.youtube.com/watch?v=HxaD_trXwRE




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: