Go 언어는 경량 스레드를 동시에 실행할 수 있는 Goroutine을 통해 동시 프로그래밍을 구현합니다. 고루틴은 go 키워드를 사용하여 생성할 수 있으며 파이프(chan 유형)를 통해 통신할 수 있습니다. 실제 사례에서는 문자열을 병렬로 검색하고 각 고루틴 검색 결과를 받기 위한 파이프라인을 생성하여 검색 속도를 향상시킵니다.
동시 프로그래밍에 Go 기능 사용하기
Go 언어는 동시 프로그래밍에 사용할 수 있는 Goroutine이라는 경량 스레드를 제공합니다. 고루틴은 동시에 실행되어 애플리케이션의 성능과 응답성을 향상시킬 수 있습니다.
고루틴을 만들려면 go
키워드와 실행할 함수를 차례로 사용하세요. go
关键字,后面跟着要执行的函数:
go func() { fmt.Println("这是一个 Goroutine!") }
Goroutine 也可以接收和发送值。使用 chan
// 创建管道 ch := make(chan string) // Goroutine 发送值 go func() { ch <- "消息 1" ch <- "消息 2" } // 主程序接收值 for msg := range ch { fmt.Println(msg) }
chan
유형을 사용하여 고루틴 간의 통신을 허용하는 파이프라인을 생성합니다: // 文件列表 files := []string{"file1.txt", "file2.txt", "file3.txt"} // 创建管道 result := make(chan string) // Goroutine 并行查找字符串 for _, file := range files { go func(file string) { data, err := ioutil.ReadFile(file) if err != nil { result <- file + ": " + err.Error() return } result <- file + ": " + strconv.Itoa(strings.Count(string(data), "foo")) }(file) } // 主程序打印结果 for result := range result { fmt.Println(result) }
rrreee
이 예를 사용하면 각 파일에서 "foo"라는 문자열의 발생을 병렬로 찾을 수 있어 단일 스레드 조회보다 더 빠른 성능을 얻을 수 있습니다. 🎜위 내용은 동시 프로그래밍에 Golang 함수는 어떻게 사용됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!