第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

為什么會有這樣的結(jié)果?

為什么會有這樣的結(jié)果?

Go
肥皂起泡泡 2022-06-21 10:30:33
我寫了一個 golang 腳本來掃描開放端口并使用 sync.WaitGourp 來控制 goroutine 的數(shù)量。當(dāng) goroutine 太大時,比如 2000,結(jié)果與 1000 不同。類似于提前退出。代碼顯示如下func worker(wg *sync.WaitGroup) {    for job := range jobs {        _, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%d", job.host, job.port), time.Millisecond*1500)        if err != nil {            results <- Result{job, false}        } else {            results <- Result{job, true}        }    }    wg.Done()}func main() {    go func() {        for i := 1; i < 65535; i++ {            jobs <- Job{host, i}        }        close(jobs)    }()    go func() {        for result := range results {            if result.status {                fmt.Println(result.job, "open")            }        }    }()    wg := sync.WaitGroup{}    for i := 1; i < 1000; i++ {        wg.Add(1)        go worker(&wg)    }    wg.Wait()}當(dāng) 1000{127.0.0.1 80} 打開 {127.0.0.1 631} 打開 {127.0.0.1 3306} 打開 {127.0.0.1 6379} 打開 {127.0.0.1 33060} 打開當(dāng) 2000 年{127.0.0.1 80} 打開 {127.0.0.1 631} 打開我希望 2000 輸出所有端口,如 1000
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個贊

您無需等待 中的兩個“非工作”goroutine main,因此一旦wg.Wait()返回,進(jìn)程就會關(guān)閉,并拆除所有未完成的 goroutine。

由于其中一個正在處理結(jié)果,因此在您看來,好像并非所有任務(wù)都已處理(這是真的)。


查看完整回答
反對 回復(fù) 2022-06-21
?
慕的地6264312

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個贊

工作人員完成后關(guān)閉結(jié)果通道。在主 goroutine 中處理結(jié)果。


wg := sync.WaitGroup{}

for i := 1; i < 1000; i++ {

    wg.Add(1)

    go worker(&wg)

}


go func() {

    for i := 1; i < 65535; i++ {

        jobs <- Job{host, i}

    }


    // No more jobs, exit from worker loops.

    close(jobs)


    // Wait for workers to write all results and exit.

    wg.Wait()


    // No more results, exit from main loop.

    close(results)


}()


for result := range results {

    if result.status {

        fmt.Println(result.job, "open")

    }

}


查看完整回答
反對 回復(fù) 2022-06-21
  • 2 回答
  • 0 關(guān)注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號