这是一个 设计和实现的问题。

例如:你设计一张桌子,是设计他的功能和用户使用的方式。而实现角度,你可以用木头,可以用铁,可以用碳纤维。

同理:golang为了让用户无痛的享受多核性能,在使用者角度提供了和 阻塞模式 一模一样的方式,因为这样可以显著的降低用户编程难度。这是设计层面的问题。

在实现层面有很多中方式实现这个效果,golang选择了比较成熟的方式而已。