亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
建平县| 六盘水市| 清水县| 华容县| 海南省| 潜山县| 吉林市| 沙河市| 咸阳市| 翁源县| 佳木斯市| 阳新县| 沛县| 宝兴县| 阜平县| 吉安市| 琼海市| 泾川县| 收藏| 扎鲁特旗| 鹤岗市| 绥棱县| 赤城县| 常宁市| 海南省| 友谊县| 昌黎县| 延庆县| 鄯善县| 张家港市| 佳木斯市| 二连浩特市| 临洮县| 湛江市| 阜南县| 聊城市| 舞阳县| 任丘市| 改则县| 蛟河市| 孝昌县|