Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我将如何实施Go';Java中的无缓冲通道?_Java_Go_Synchronization - Fatal编程技术网

我将如何实施Go';Java中的无缓冲通道?

我将如何实施Go';Java中的无缓冲通道?,java,go,synchronization,Java,Go,Synchronization,Go为Goroutine(线程)之间的通信提供了这两种功能。在Java中,实现缓冲通道作为有界缓冲区是非常重要的 Go的无缓冲通道要求一个goroutine在另一个goroutine接收时发送。有人能给我解释一下如何在Java中实现吗?在Java中,您可以使用,Java 8的源代码在这里 我建议你也去图书馆看看。有关JCSP的更多详细信息,请参阅 唉,Java没有任何与Goroutines等价的东西。(很久以前曾经有过“绿线”,但它们被抛弃了)。因此,如果您改用线程,那么一旦线程数量开始变得有趣

Go为Goroutine(线程)之间的通信提供了这两种功能。在Java中,实现缓冲通道作为有界缓冲区是非常重要的

Go的无缓冲通道要求一个goroutine在另一个goroutine接收时发送。有人能给我解释一下如何在Java中实现吗?

在Java中,您可以使用,Java 8的源代码在这里


我建议你也去图书馆看看。有关JCSP的更多详细信息,请参阅


唉,Java没有任何与Goroutines等价的东西。(很久以前曾经有过“绿线”,但它们被抛弃了)。因此,如果您改用线程,那么一旦线程数量开始变得有趣(例如,超过一万个),您就会承受沉重的内存占用。每个Java线程都需要一个操作系统线程和一个大的堆栈空间。

我想你指的是SynchronousQueue,它在没有缓冲的情况下从一个线程传递到另一个线程。一般来说,如果可以的话,最好从并行流开始,在Java8中使用多线程。@PeterLawrey谢谢。我的兴趣是学术。我不想使用队列——我想了解它是如何实现的。既然您给了我正确的术语,我将查找它。您应该能够阅读它的来源。注意:同步队列非常简单,因为它不存储任何东西。@PeterLawrey我知道你已经有很多名声了,但是你想给出答案吗?