草庐IT

channel1

全部标签

go - gRPC 私有(private) channel

是否可以只从gRPC服务器流式传输到某些客户端?我相信我正在寻找类似于Pusher的东西,您可以在其中为客户提供一个channel,并且您可以发布只有有权访问该channel的客户才能看到的消息。我正在努力理解我们需要采取哪些步骤来做这样的事情。考虑web-sockets我相信我们可以存储每个客户端连接,然后我们可以找到该连接并发送消息。我们如何使用gRPC做类似的事情? 最佳答案 据我了解这个问题。您希望将消息发送到gRPC中的特定客户端。这很可能在gRPC中使用Serversidestreaming或Bi-directional

go - 返回 channel Golang

我正在尝试使用Gochannel,但对来自Go博客的以下函数示例感到困惑:funcgen(nums[]int)主要:funcmain(){c:=make(chanint)c=gen([]int{2,3,4,5})//Consumetheoutput.//Print2,3,4,5fmt.Println(完整代码:http://play.golang.org/p/Qh30wzo4m0我的疑惑:我的理解是,一旦return被调用,函数就会被终止,函数内部的channel就没有生命了。return语句只被调用一次。但是outchannel的内容会被多次读取。在这种情况下,实际的执行流程是什么?

go - 返回 channel Golang

我正在尝试使用Gochannel,但对来自Go博客的以下函数示例感到困惑:funcgen(nums[]int)主要:funcmain(){c:=make(chanint)c=gen([]int{2,3,4,5})//Consumetheoutput.//Print2,3,4,5fmt.Println(完整代码:http://play.golang.org/p/Qh30wzo4m0我的疑惑:我的理解是,一旦return被调用,函数就会被终止,函数内部的channel就没有生命了。return语句只被调用一次。但是outchannel的内容会被多次读取。在这种情况下,实际的执行流程是什么?

pointers - 在 Go Lang 中通过 channel 传递指针

可以在golang中通过channel传递指针吗?我需要传递结构,对其进行更改并在传递结构的同一函数中进行这些更改?我试过了chan我得到了#command-line-arguments.\o.go:130:cannotuse&duom[i](type*KaVartoti)astypeKaVartotiinsend之后我尝试了chan我得到了#command-line-arguments.\o.go:130:invalidindirectofduom[i](typeKaVartoti)那么,Goir中是否可以通过channel发送指针? 最佳答案

pointers - 在 Go Lang 中通过 channel 传递指针

可以在golang中通过channel传递指针吗?我需要传递结构,对其进行更改并在传递结构的同一函数中进行这些更改?我试过了chan我得到了#command-line-arguments.\o.go:130:cannotuse&duom[i](type*KaVartoti)astypeKaVartotiinsend之后我尝试了chan我得到了#command-line-arguments.\o.go:130:invalidindirectofduom[i](typeKaVartoti)那么,Goir中是否可以通过channel发送指针? 最佳答案

go - "make"单向 channel 是否有目的?

注意:这不是this的副本问题,因为我了解您何时会使用单向channel。我一直这样做。我的问题是为什么这个程序是有效的:funcmain(){ch:=make(chanPlayground当然,运行它会导致死锁。如果您使用%T检查类型,Go实际上会报告ch的类型是仅发送channel。在Go中,您可以make单向channel,但这没有什么意义,因为通过创建一个在开始时只是单向的channel,您可以确保至少有一个read/write永远不会发生。一种可能的解释是强制goroutine挂起,但这与select{}一样容易完成。我唯一的另一个想法是强制goroutine只执行n次,ch

go - "make"单向 channel 是否有目的?

注意:这不是this的副本问题,因为我了解您何时会使用单向channel。我一直这样做。我的问题是为什么这个程序是有效的:funcmain(){ch:=make(chanPlayground当然,运行它会导致死锁。如果您使用%T检查类型,Go实际上会报告ch的类型是仅发送channel。在Go中,您可以make单向channel,但这没有什么意义,因为通过创建一个在开始时只是单向的channel,您可以确保至少有一个read/write永远不会发生。一种可能的解释是强制goroutine挂起,但这与select{}一样容易完成。我唯一的另一个想法是强制goroutine只执行n次,ch

java - Java 中 Go channel 的等价物

我有一个要求,我需要从一组阻塞队列中读取数据。阻塞队列是由我正在使用的库创建的。我的代码必须从队列中读取。我不想为这些阻塞队列中的每一个创建一个读取器线程。相反,我想使用单个线程(或者可能最多使用2/3个线程)来轮询它们的数据可用性。由于一些阻塞队列可能长时间没有数据,而其中一些可能会出现数据突发。用小超时轮询队列会起作用,但这根本不是有效的,因为即使其中一些队列长时间没有数据,它仍然需要继续循环遍历所有队列。基本上,我正在寻找一种阻塞队列的选择/epoll(用于套接字)机制。任何线索都非常感谢。不过,在Go中做到这一点真的很容易。下面的代码对channel和goroutine进行了同

java - Java 中 Go channel 的等价物

我有一个要求,我需要从一组阻塞队列中读取数据。阻塞队列是由我正在使用的库创建的。我的代码必须从队列中读取。我不想为这些阻塞队列中的每一个创建一个读取器线程。相反,我想使用单个线程(或者可能最多使用2/3个线程)来轮询它们的数据可用性。由于一些阻塞队列可能长时间没有数据,而其中一些可能会出现数据突发。用小超时轮询队列会起作用,但这根本不是有效的,因为即使其中一些队列长时间没有数据,它仍然需要继续循环遍历所有队列。基本上,我正在寻找一种阻塞队列的选择/epoll(用于套接字)机制。任何线索都非常感谢。不过,在Go中做到这一点真的很容易。下面的代码对channel和goroutine进行了同

queue - 是否可以将 Go 的缓冲 channel 用作线程安全队列?

我想找到一个队列结构(一个数据容器),它的元素必须是先进先出的。对我来说,结构必须是线程安全的很重要。我打算将此数据容器用作任务或连接池之类的东西。我知道缓冲channel是线程安全的,但我想知道它是否可以用作FIFO,尤其是在并发情况下。如果可以将缓冲channel用作线程安全队列,我是否需要担心它的效率? 最佳答案 在Go中,缓冲channel就是:线程安全的FIFO队列,因此您尝试做的事情是完全有效的。使用这种方法根本不会出现性能问题。 关于queue-是否可以将Go的缓冲chan