异步async
并行:多个任务并发执行
同步sync
串行:多个任务依次执行
阻塞block
某个并发任务由于拿不到资源没法干活,从而无所事事地干等
进程并发-线程并发-协程并发
异步回调async callback
A线程唤起B线程,令其干活
同时给B一个回调函数
命令B在干完活以后,执行这个回调函数
这个回调函数会与A线程发生交互
A不必阻塞等待B执行的结果,AB两个线程可以并发执行
利弊
- 效率高
- 回调地狱CallbackHell,逻辑线不清晰
共享内存
- 多个并发线程通过共享内存的方式交互数据
- 线程安全问题:AB间共享的数据地址可能被C并发修改
同步锁/资源锁
为了解决共享内存所导致的线程安全问题,共享的内存地址在特定时间段被特定线程锁定
加锁期间,其它线程无法访问,带来低效率问题
死锁
A锁住B的资源
B锁住A要的资源
AB同时阻塞
案例:小两口的冷战