并发

在现实生活中,同时处理多件事情是非常常见的现象。比如一边上厕所一边玩手机,一边洗澡一边听歌等等。那在开发的过程中,我们也会有同时进行多个任务的需求,这就是我们常说的并发。

go并发

go语言和其他语言相比,在处理并发方面有其得天独厚的优势,通过goroutinechannel在底层已经帮各位开发者处理好了并发的问题,只需要通过关键字go就可以启动一个新的goroutine

举个🌰

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package main

import (
"fmt"
"time"
)

func sayHi(name string) {
for i := 0; i < 10; i++ {
time.Sleep(time.Second)
fmt.Printf("%s say hi\n", name)
}
}
func main() {
go sayHi("liujiamin")
sayHi("larmy")

}

image-20240307201142150

可以看到执行顺序没有固定的先后顺序,因为是两个goroutine在运行