有界通道

With bounded (synchronous) channels, send can block the current thread:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

  • 调用 send 将阻塞当前线程,直到通道中有足够的空间放置新消息。如果无人从通道读取数据,线程会被无限期地阻塞。
  • 如果通道关闭,调用 send 将中止并返回错误(这就是它会返回 Result 的原因)。当接收器被丢弃时,通道将关闭。
  • A bounded channel with a size of zero is called a “rendezvous channel”. Every send will block the current thread until another thread calls recv.