亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有更好的方法來跟蹤goroutine響應嗎?

有更好的方法來跟蹤goroutine響應嗎?

Go
慕森王 2021-05-05 07:23:01
我試圖繞過goroutines。我創建了一個簡單的程序,可以在多個搜索引擎中并行執行相同的搜索。此刻,為了跟蹤回復的數量,我計算了收到的數量。雖然看起來有點業余。在下面的代碼中,是否有更好的方法知道何時收到所有goroutine的響應?package mainimport (    "fmt"    "net/http"    "log")type Query struct {    url string    status string}func search (url string, out chan Query) {    fmt.Printf("Fetching URL %s\n", url)    resp, err := http.Get(url)    if err != nil {        log.Fatal(err)    }    defer resp.Body.Close()    out <- Query{url, resp.Status}}func main() {    searchTerm := "carrot"    fmt.Println("Hello world! Searching for ", searchTerm)    searchEngines := []string{        "http://www.bing.co.uk/?q=",        "http://www.google.co.uk/?q=",        "http://www.yahoo.co.uk/?q="}    out := make(chan Query)    for i := 0; i < len(searchEngines); i++ {        go search(searchEngines[i] + searchTerm, out)    }    progress := 0    for {                    // is there a better way of doing this step?        if progress >= len(searchEngines) {            break        }        fmt.Println("Polling...")        query := <-out        fmt.Printf("Status from %s was %s\n", query.url, query.status)        progress++    }}
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 219 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號