goroutine调用中通道接收操作符的阻塞行为

Mor*_*gan 0 channel go goroutine

go DelegateWork(mr, <-mr.impl.readyWorkers, jobArgs)    
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,通道接收操作符是否会导致调用者或被调用的 goroutine 阻塞?

icz*_*cza 7

规范:Go 语句:

函数值和参数在调用 goroutine 中照常评估,但与常规调用不同,程序执行不会等待调用的函数完成。相反,该函数开始在新的 goroutine 中独立执行。

所以如果<-mr.impl.readyWorkers阻塞,它会在新的 goroutine 启动之前阻塞调用者 goroutine。