It does. I think the wording is wrong - the Go routine blocks - but the carrier thread (that was running the Go routine) runs another Go routine (if needed and ready to run).
> On May 31, 2024, at 2:54 AM, Haoyang Fan <haoyangfa...@gmail.com> wrote: > > 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 > <mailto: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 > > <https://groups.google.com/d/msgid/golang-nuts/e1c49031-821c-42af-9449-2c7586c3676fn%40googlegroups.com?utm_medium=email&utm_source=footer>. -- 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/29CDB318-EC02-4E03-A3D6-3F2498CE3E40%40ix.netcom.com.