91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

golang多線程遍歷目錄怎么實現

小億
111
2023-10-21 15:44:13
欄目: 編程語言

在Go語言中,可以使用goroutine和channel來實現多線程遍歷目錄。下面是一個簡單的示例代碼:

package main

import (
	"fmt"
	"os"
	"path/filepath"
)

func main() {
	dir := "path/to/directory" // 目錄路徑
	fileChan := make(chan string) // 創建一個用于傳遞文件路徑的channel

	// 啟動多個goroutine來遍歷目錄
	for i := 0; i < 5; i++ {
		go func() {
			for file := range fileChan {
				fmt.Println(file)
			}
		}()
	}

	// 遍歷目錄并將文件路徑發送到channel中
	filepath.Walk(dir, func(file string, info os.FileInfo, err error) error {
		if !info.IsDir() {
			fileChan <- file
		}
		return nil
	})

	// 關閉channel
	close(fileChan)
}

在以上代碼中,我們使用一個goroutine池來遍歷目錄,該池中包含了5個goroutine。然后,我們通過filepath.Walk函數遍歷目錄,并將文件路徑發送到fileChan channel中。每個goroutine從fileChan中接收文件路徑,并進行處理。最后,我們關閉了fileChan channel。

請根據實際需求調整goroutine的數量和實現具體的文件處理邏輯。

0
永川市| 泸定县| 阜新| 双鸭山市| 项城市| 洞口县| 阿拉善右旗| 吉隆县| 陆丰市| 博野县| 尉氏县| 宜川县| 宜兴市| 个旧市| 阿拉尔市| 邵武市| 宜城市| 道孚县| 嘉祥县| 普洱| 南皮县| 杭锦后旗| 沈阳市| 建宁县| 永川市| 南乐县| 乐安县| 惠安县| 镇宁| 泾川县| 汉中市| 志丹县| 大悟县| 界首市| 同仁县| 民权县| 牡丹江市| 田阳县| 汾阳市| 曲水县| 铜陵市|