下面是一个示例代码:
package main
import (
	"fmt"
)
func processSlice(ch chan []int, slice []int) {
	result := make([]int, len(slice))
	for i, num := range slice {
		result[i] = num * 2 // 处理逻辑
	}
	ch <- result
}
func main() {
	slice := make([]int, 10000)
	for i := 0; i < len(slice); i++ {
		slice[i] = i // 初始化slice
	}
	ch := make(chan []int, 100)
	for i := 0; i < 100; i++ {
		go processSlice(ch, slice[i*100:(i+1)*100])
	}
	results := make([][]int, 0)
	for i := 0; i < 100; i++ {
		result := <-ch
		results = append(results, result)
	}
	fmt.Println(results)
}
这个程序使用了 go 关键字在后台启动了100个 goroutine 来并行处理长度为 10000 的 slice。每个 goroutine 处理的子 slice 长度为 100,将处理结果存放到一个 channel 中。最后主 goroutine 从 channel 中取出所有结果,将它们组合成一个二维 slice。


        
        
        
        
        
        
        
        
        
                
                
                
                
                
                
                