Hi everyone, I was always under the impression that Go solely uses async I/O under the hood so that when invoking a seemingly blocking call like os.File.Read the underlying thread won't be blocked. Go scheduler will save the context of current goroutine and schedule other goroutines to run on that thread. This understanding seems to be aligned with most material I can find on the internet.
However, recently when I was reading the slides (https://go.dev/talks/2012/waza.slide#32), on slide 32 I notice it says "*When a goroutine blocks, that thread blocks but no other goroutine blocks*". This is contradictory and make me wonder does Go really perform I/O in an asynchronous manner (e.g. like select/poll/epoll in Linux) under the hood? Can somebody please clarify? -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/e1c49031-821c-42af-9449-2c7586c3676fn%40googlegroups.com.