中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
彰化市| 赤壁市| 霍邱县| 蓝田县| 呼玛县| 三原县| 应城市| 阳泉市| 册亨县| 勃利县| 新津县| 军事| 固始县| 锦屏县| 游戏| 盐城市| 平度市| 纳雍县| 修文县| 镇原县| 海原县| 富平县| 青河县| 比如县| 犍为县| 阳谷县| 鞍山市| 博客| 阿坝县| 营山县| 交城县| 嘉义县| 沂南县| 天气| 洪雅县| 四子王旗| 永昌县| 蕉岭县| 湘西| 光山县| 东方市|