1、并发:电脑同时做不同事情。(放音乐、放电影、执行游戏程序等)cpu根据时间片进行划分,交替执行多个程序。但是人的感觉是同时进行的。
2、并行:多个cpu(多核)同时执行不同程序任务。
3、go程:go语言里,实现并发的过程是go程。(goroutine)go程是go语言原生支持的。(不需要导入包/库)
4、go程优点:每一个go程占用的系统资源远远小于线程。(1个go程大约4k-5k内存资源)一个程序可以使用大量go程。(上千个)所以对于实现高并发非常友好。
5、go的使用:只需要在目标函数前加上go关键字。
6、代码
package main
import (
"fmt"
"time"
)
func main() {
// sub routine(启动go程只需前面加关键字go)
go display()
//main routine
cnt := 1
for {
fmt.Println("这是主go程")
cnt++
time.Sleep(1 * time.Second)
}
}
/*
本函数用于subroutine
*/
func display() {
cnt := 1
for {
fmt.Println("=这是子go程")
cnt++
time.Sleep(1 * time.Second)
}
}
7、结果
ASUS@DESKTOP-NFP9SLA MINGW64 /c/gowork/src
$ go run 014_go_routine.go
这是主go程
=这是子go程
=这是子go程
这是主go程
这是主go程
=这是子go程
=这是子go程
这是主go程
这是主go程
=这是子go程
=这是子go程
这是主go程
这是主go程
=这是子go程
=这是子go程
这是主go程
exit status 0xc000013a