goroutine

    0热度

    1回答

    我在阅读GOLANG-BOOK后开始玩golang。 我试图建立一个简单的TCP聊天。 我创建了一个用户结构,并且我想要听用户数组中的每个user.inbound通道。 我知道我的问题在于函数writeUser(),因为它等待user.inbound。即时通讯不知道如何正确地使这种类型的用户数组通道。 这是错误,我从编译器收到: ./chatserver.go:22: syntax error:

    0热度

    1回答

    所以我使用大猩猩websocket库,我建立一个websocket服务器,当我收到一个连接,我创建2去例程一读取来自客户端的传入消息和另一个1监听发送到该频道的消息,然后将其发送给客户端。 func (p *Player) EventLoop() { l4g.Info("Starting player %s event loop", p) go p.readFromSocket

    1热度

    1回答

    为什么在那个脚本http://play.golang.org/p/Q5VMfVB67- goroutine淋浴不起作用? package main import "fmt" func main() { ch := make(chan int) go producer(ch) go shower(ch) for i := 0; i < 10; i++

    3热度

    2回答

    我想知道在退出程序之前等待完成程序的正确方法是什么。阅读似乎一个布尔陈会做的伎俩一些其他的答案,如Playground link func do_stuff(done chan bool) { fmt.Println("Doing stuff") done <- true } func main() { fmt.Println("Main") done

    0热度

    2回答

    我有一个队列,我想执行以下操作: 弹出第一个元素 如果元素是偶数,push元素+1 这应该继续,直到队列为空;此外,我想同时使用多个goroutines。 我能够做一个单一的goroutine,但只要我添加一段时间一切都出错了,因为它似乎创建了太多的goroutines。即使放入else {return}也不能解决问题。旁边的问题:为什么不呢?我得到的错误: syntax error: unexp

    7热度

    1回答

    我有一个队列和一个函数可以执行出列和排队。我想确保在队列中运行正确的goroutine,只要列表中有某些内容。 这是我使用的代码,但我想知道是否有打印当前活跃的够程 Link to playground var element int func deen(queue chan int) { element := <-queue fmt.Println("element i

    6热度

    2回答

    我想知道解决这个问题的惯用方法(它目前会引发死锁错误),递归分支未知次数,所以我不能简单地关闭通道。 http://play.golang.org/p/avLf_sQJj_ 我已工作,由一个指针传递给一个数字,它递增,而我已经研究过使用同步waitgroups。我不觉得(我可能错了),我想出了一个优雅的解决方案。我见过的Go例子往往简单,聪明,简洁。 这是围棋的一个巡回赛的最后一个练习,https

    1热度

    1回答

    我正在使用go 1.3.3。 我在我的Mac上运行下面的围棋程序是10.9.2英特尔酷睿i7: package main import ( "fmt" "sync" ) func justprint(i int, wg *sync.WaitGroup) { for j := 0; j < 1000000; j++ { fmt.Printf("P

    1热度

    1回答

    我正在使用go 1.3.3。 我想了解Go何时产生新线程。我有以下两个围棋程序: 计划1: package main func main() { for ;; { } } 方案2: package main import ( "sync" ) func justrun(wg *sync.WaitGroup) { for ;; {

    4热度

    1回答

    除非您在文件操作中阻止通道通信,否则似乎不可能通过通道与执行文件操作的goroutine进行双向通信。我该如何解决这个限制呢? 另一种方式来短语这个问题... 如果我有相似的循环下在运行的goroutine,我怎么能告诉它关闭而不阻止下一个读的连接,并退出? func readLines(response *http.Response, outgoing chan string) error {