1. 进程和线程
2. 并行和并发
3. goroutine
需求
使用同步等待组
wg.Add(1),要传一个1
4. 设置cpu数量
5. foe循环开启goroutine
6. chan
for range遍历
for循环遍历
goroutine和chan
7. 单向管道
8. select多路复用
取不到数据会跳到其他case
取不到数据会阻塞
9. goroutine panic
一个goroutine报错,其他goroutine也会受到影响,程序报错
map是引用类型,需要make来获得内存空间,不能直接赋值
10. 互斥锁
并发操作map会报错
11. 读写互斥锁
-
同时只能有一个 goroutine 能够获得写锁定。
-
同时可以有任意多个 gorouinte 获得读锁定。
-
同时只能存在写锁定或读锁定(读和写互斥)。
基本遵循两大原则:
1
2
3
|
1、可以随便读,多个goroutine同时读。 2、写的时候,啥也不能干。不能读也不能写。 |