If a goroutine is blocking, the runtime will start a new OS thread to handle the other goroutines until the blocking one stops blocking.
Reference : https://groups.google.com/forum/#!topic/golang-nuts/2IdA34yR8gQ
More Related Contents:
- anonymous struct and empty struct
- No output from goroutine
- Is this an idiomatic worker thread pool in Go?
- Is it safe to read a function pointer concurrently without a lock?
- How to broadcast message using channel
- Can I concurrently write different slice elements
- Prevent the main() function from terminating before goroutines finish in Golang
- Number of threads used by Go runtime
- Multiple goroutines listening on one channel
- Goroutine does not execute if time.Sleep included
- How to recover from concurrent map writes?
- What exactly does runtime.Gosched do?
- Sudden Increase in the number of goroutines after upgrade [closed]
- SSE instructions: which CPUs can do atomic 16B memory operations?
- How to stop a goroutine
- cancel a blocking operation in Go
- What is the difference between lock, mutex and semaphore?
- What is the Swift equivalent to Objective-C’s “@synchronized”?
- Would you explain lock ordering?
- Close multiple goroutine if an error occurs in one in go
- What is a coroutine?
- How to wait for all goroutines to finish without using time.Sleep?
- How does select work when multiple channels are involved?
- How would you define a pool of goroutines to be executed at once?
- How safe are Golang maps for concurrent Read/Write operations?
- If I am using channels properly should I need to use mutexes?
- Max number of goroutines
- How to collect values from N goroutines executed in a specific order?
- Go http.Get, concurrency, and “Connection reset by peer”
- Are POSIX’ read() and write() system calls atomic?