ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 创建goroutine 只需要在函数调用语句钱添加go关键字,就可以创建并发执行单元.开发人员无需了解任何执行细节,调度 器会自动将其安排到合适的系统线程上执行. 在并发编程里,我们通常想讲一个过程切分成几块,然后让每个goroutine格子负责一块工作.当一个程序启 动时,其主函数即在一个单独的goroutine中运行,我们叫它main goroutine .新的goroutine会用go 语句来创建. ### 实例 ~~~ func newTask() { for { fmt.Println("this is a newTask") time.Sleep(time.Second) } } func main() { go newTask() //新建一个协程,新建一个任务 for { fmt.Println("this is main goroutine") time.Sleep(time.Second) } } ~~~ ~~~ this is a newTask this is main goroutine this is a newTask this is main goroutine this is a newTask this is main goroutine ~~~ ### 主协程退出,其它子协程也会退出 ~~~ go func() { i := 0 for { i++ fmt.Printf("子协程 i = %d\n", i) time.Sleep(time.Second) } }() i := 0 for { i++ fmt.Printf("main i = %d\n", i) time.Sleep(time.Second) if i == 2 { break } } ~~~ ~~~ main i = 1 子协程 i = 1 子协程 i = 2 main i = 2 子协程 i = 3 ~~~