go璇█ " />

扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

go璇█濡備綍瀹炵幇骞惰璇锋眰

扬州沐宇科技
2024-01-27 14:10:55
go璇█

Go璇█鍙互閫氳繃浣跨敤goroutine鍜宑hannel鏉ュ疄鐜板苟琛岃姹傘€備互涓嬫槸涓€涓畝鍗曠殑绀轰緥锛?/p>

package main

import (
	"fmt"
	"net/http"
	"time"
)

func main() {
	// 鍒涘缓涓€涓€氶亾锛岀敤浜庢帴鏀惰姹傜粨鏋?/span>
	results := make(chan string)

	// 瀹氫箟涓€缁刄RL
	urls := []string{
		"https://www.google.com",
		"https://www.baidu.com",
		"https://www.github.com",
	}

	// 閬嶅巻URL锛屼负姣忎釜URL鍚姩涓€涓猤oroutine杩涜骞惰璇锋眰
	for _, url := range urls {
		go request(url, results)
	}

	// 绛夊緟鎵€鏈夎姹傚畬鎴愶紝骞舵敹闆嗙粨鏋?/span>
	for i := 0; i < len(urls); i++ {
		result := <-results
		fmt.Println(result)
	}
}

func request(url string, results chan<- string) {
	// 鍙戦€丠TTP GET璇锋眰
	resp, err := http.Get(url)
	if err != nil {
		results <- fmt.Sprintf("Error requesting %s: %s", url, err)
		return
	}
	defer resp.Body.Close()

	// 妯℃嫙澶勭悊鍝嶅簲鐨勫欢杩?/span>
	time.Sleep(time.Second)

	// 璇诲彇鍝嶅簲鍐呭
	results <- fmt.Sprintf("Request to %s completed with status code %d", url, resp.StatusCode)
}

鍦ㄤ笂闈㈢殑绀轰緥涓紝鎴戜滑鍒涘缓浜嗕竴涓€氶亾results鐢ㄤ簬鎺ユ敹璇锋眰缁撴灉銆傜劧鍚庯紝鎴戜滑瀹氫箟浜嗕竴缁刄RL锛屽苟浣跨敤go鍏抽敭瀛楀惎鍔ㄤ簡涓€缁刧oroutine鏉ュ苟琛屽彂閫佽姹傘€傛瘡涓猤oroutine鎵цrequest鍑芥暟锛岃鍑芥暟鍙戦€丠TTP GET璇锋眰骞跺皢鍝嶅簲缁撴灉鍙戦€佸埌閫氶亾results涓€?/p>

鏈€鍚庯紝鎴戜滑浣跨敤涓€涓惊鐜潵绛夊緟鎵€鏈夎姹傚畬鎴愶紝骞朵粠閫氶亾results涓敹闆嗙粨鏋溿€傝繖鏍凤紝鎴戜滑灏卞彲浠ュ苟琛屽彂閫佸涓姹傦紝骞跺湪鎵€鏈夎姹傚畬鎴愬悗澶勭悊缁撴灉銆?/p>

扫码添加客服微信