![]() |
1
1
如果您使用没有缓冲区的chan,则对该chan的任何put都将停止,直到出现相应的take。使用带有缓冲区1的chan让“推杆”继续运行,直到第二次推杆。在那一点上,它会停下来,直到有人从缓冲区取走。 举一个具体的例子,如果放状态机(go块或线程)需要在一个值放在通道上之后,但在它可能被接收状态机处理之前运行一些副作用,那么您应该使用一个缓冲区。
使用1或0的缓冲区或不使用缓冲区之间的选择不应依赖于机器(我认为?),这将取决于核心的逻辑性质。您创建的异步状态机,以及两个状态机是否需要在某个点同步(
|