Bahasa Go melaksanakan pengaturcaraan serentak melalui Goroutine, yang membolehkan utas ringan dilaksanakan secara serentak. Goroutines boleh dibuat menggunakan kata kunci go dan berkomunikasi melalui paip (jenis chan). Dalam kes sebenar, kami mencari rentetan secara selari dan membuat saluran paip untuk menerima keputusan setiap carian Goroutine, dengan itu meningkatkan kelajuan carian.
Menggunakan fungsi Go untuk pengaturcaraan serentak
Bahasa Go menyediakan benang ringan yang dipanggil Goroutine, yang boleh digunakan untuk pengaturcaraan serentak. Goroutines boleh melaksanakan secara serentak, meningkatkan prestasi dan responsif aplikasi anda.
Untuk mencipta Goroutine, gunakan kata kunci go
, diikuti dengan fungsi yang akan dilaksanakan: 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
untuk membuat saluran paip, yang membolehkan komunikasi antara Goroutines: // 文件列表 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
Menggunakan contoh ini, kita boleh mencari kejadian rentetan "foo" dalam setiap fail secara selari, mencapai prestasi yang lebih pantas daripada carian berbenang tunggal. 🎜Atas ialah kandungan terperinci Bagaimanakah fungsi Golang digunakan untuk pengaturcaraan serentak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!