goroutine

    0热度

    2回答

    我意识到我的第一个Golang应用程序,我有使用GoRoutines,我真的不知道为什么在使用MAX CPU & Cores一些问题。 当使用工具如htop,CPU不是在其最大功率使用,并且仅1..4 threads处于活动状态的时间。此外,所有cores都处于活动状态,但它们的使用率大约为25%-40%。 我用: func MaxParallelism() int { maxProcs

    0热度

    1回答

    如果我使用http.ListenAndServe在用户点击URL时提供响应,我是否应该将函数中的相应操作作为goroutine来触发? 例如,说我在听/: func main() { http.HandleFunc("/", provideMainContent) } func provideMainContent(w http.ResponseWriter, r *http.Re

    1热度

    2回答

    在下面的代码中,我试图产生MaxOutstanding数量的处理程序。每个处理程序循环遍历队列queue中的项目并将其打印出来,我还将true写入done通道。 在我的主要功能中,我启动处理程序并将9个元素写入queue,并等待第一个元素写入done队列。 package main import "fmt" type Request struct { int32 } va

    1热度

    2回答

    我有一个结构叫做Hub与Run()方法,它在自己的goroutine中执行。该方法按顺序处理传入消息。消息从多个生产者同时到达(单独的goroutines)。当然,我使用channel来完成这项任务。但是现在我想将Hub隐藏在interface之后,以便能够从其实现中进行选择。所以,使用channel作为简单的Hub的字段是不合适的。 package main import "fmt" imp

    1热度

    1回答

    我们可以在Go lang中两次启动一个decalred频道吗? package main import ( "fmt" ) func emit(c chan string) { words := []string {"The", "quick", "brown", "fox"} for _, word := range words { c <-

    0热度

    1回答

    我想在去(郎)创建游戏循环,所以我想这: package main import ( "fmt" // "runtime" "sync" "time" ) var v = 0 var wg sync.WaitGroup var sec = 5 func main() { wg.Add(1) gameLoop()

    1热度

    1回答

    我试图理解这段代码,不知道为什么第二次执行是在第一次执行之前执行的。如果有人能真正帮助我解决这个问题真是太棒了! func sum(a []int, c chan int) { fmt.Println("summing: ", a) total := 0 for _, v := range a { total += v } //fmt.

    2热度

    1回答

    我有以下中间人代码: func execTask(input int, results chan<- int) { //do stuff (in my case, start process and return something) results <- someResult } func main() { results := make(chan int)

    2热度

    2回答

    我有一个简单的并发用例在去,它让我疯狂我找不出一个优雅的解决方案。任何帮助,将不胜感激。 我想写一个方法fetchAll并行查询来自远程服务器的未指定数量的资源。如果任何提取失败,我想立即返回第一个错误。从阅读https://blog.golang.org/pipelines我可以创建一个信号通道清理其他线程https://play.golang.org/p/Be93J514R5 我知道: 我最初

    2热度

    2回答

    是的,它看起来像StackOverflow上最重复的问题之一,但请花几分钟时间回答这个问题。 func _Crawl(url string, fetcher Fetcher, ch chan []string) { if store.Read(url) == true { return } else { store.Write(url) }