作者 | zvalhu
Golang基于多线程、协程实现,与生俱来适合异步编程,当我们遇到那种需要批量处理且耗时的操作时,传统的线性执行就显得吃力,这时就会想到异步并行处理。下面介绍一些异步编程方式和技巧。
一、使用方式
1.最简单的最常用的方式:使用go关键词
func main() {
go func() {
fmt.Println("hello world1")
}()
go func() {
fmt.Println("hello world2")
}()
}
或者:
func main() {
go Announce("hello world1")
go Announce("hello world2")
}
func Announce(message string) {
fmt.Println(message)
}
使用匿名函数传递参数
data := "Hello, World!"
go func(msg string) {
// 使用msg进行异步任务逻辑处理
fmt.Println(msg)
}(data)
这种方式不需要考虑返回值问题,如果要考虑返回值,可以使用下面的方式。
2.通过goroutine和channel来实现
ch := make(chan int, 1) // 创建一个带缓冲的channel
// ch := make(chan int, 0) // 创建一个无缓冲的channel
go func() {
// 异步任务逻辑
ch