多任务:
同时执行多程序。
程序的执行:CPU, 内存
**单核CPU: **
执行程序的过程:
将自己的时间切割成时间片(一小段时间),执行一个程序。
同一时间点上,cpu执行一个程序,只能执行一个程序。
有道/录屏/Markdown…
**多核CPU: **
可以同时执行多个程序。 并行!
并发概念:
** 同时的执行多个程序!**
** 同时:并不是同一时刻上,而是程序可以一起执行!**
** 并行:并行程序需要硬件支持,同时处理许多事情的能力。**
** 01. 并发/并行?**
- Concurrency 并发
- 能够执行多个程序。
- Parallelism 并行
- 能够同时执行多个程序—–需要硬件设备支持。
- **Serial **串行
- 程序一个接一个的执行。
![111222333.png](resources/580E0BC1BBC6EE633B56B30F5E5FB2AF.png =485x408)
**
**
** **Go语言是并发语言。(并发每次调用,结果不一定一致。)
**02. 进程/ 线程 / 协程 ? **
** 支持并发的语言中,go语言是其亮点。高并发:依靠“协程”!**
进程Process
- 一个正在执行的程序。
- 内存开销大
线程Tread
- 一个进程中的一条执行路径。
- cpu的一个调度单位
- 线程之间互不影响
- 有了进程才有线程!
- 内存开销相对较小
- 主函数所在的线程叫做主线程。 Go—–主协程
- 其他线程。也叫工作线程,也叫子线程。 Go—– 子协程
- 一个进程中的一条执行路径。
协程Coroutine
- 轻量级的用户线程
- 占用的资源比较少
03. Go语言中的高并发?*
** 实现并发的方式:goroutine ,轻量级的协程**
** 语法简单轻便:go关键字 函数**
** 04. 高并发中go代码的执行过程 ?**
- go的程序执行:
- 启动主goroutine,执行main()函数。当main函数结束,主goroutine随之结束。程序结束。
- **用户启动的goroutine, 叫 子goroutine **
- 本文作者: 梁俊可
- 本文链接: http://ljk3d.com/2021/10/19/goLangNote/goLangBasic/12_GoLang语言入门_基础语法_并发与多线程01_概念/
- 版权声明: 梁俊可工作室