【发布时间】:2017-04-25 22:56:22
【问题描述】:
Go 提供 unbuffered and buffered channels 用于 goroutine(线程)之间的通信。在 Java 中将缓冲通道实现为有界缓冲区是 straightforward。
Go 的无缓冲通道要求一个 goroutine 在另一个 goroutine 接收时发送。谁能向我解释如何用 Java 实现它?
【问题讨论】:
-
我认为您的意思是 SynchronousQueue,它从一个线程传递到另一个线程而没有缓冲。一般来说,如果可以在 Java 8 中使用多线程,最好从 Parallel Streams 开始。
-
@PeterLawrey 谢谢。我的兴趣是学术。我不想使用队列——我想了解它是如何实现的。既然你给了我正确的术语,我会查一下。
-
您应该能够阅读它的源代码。注意:同步队列非常简单,因为它不存储任何内容。
-
@PeterLawrey 我知道您已经享有盛誉,但您愿意给出答案吗? grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/…
标签: java go synchronization