并发编程又叫做多线程编程
在多线程编程中会有如下几个问题:
1、分工:如何将一个任务拆解成多个部分,每个部分由不同的线程去执行
2、同步:线程之间的协作是怎么完成的
3、互斥:也叫独占,怎么保证同一时间只允许一个线程去访问临界资源
所以并发编程的本质就是:解决多线程的分工、同步和互斥的问题。
并发的优势和风险
并发编程优势:并发可以将多核CPU的计算能力发挥到极致,提升性能
并发编程的风险:
高并发场景下,频繁的上下文切换反而损耗性能
活跃性(一个并发应用程序能及时执行的能力)问题,容易出现死锁,饥饿,活锁
线程安全,多个线程共享数据时可能会产生与期望不相符的结果