并发简介
为什么要用并发?
之所以在计算机中加入操作系统来实现多个程序的同时执行,主要基于以下原因
- 资源利用率
- 公平性
便利性
线程的优势:主要是发挥多处理器的强大能力
由于基本的调度单位是线程,因此如果在程序中只有一个线程,那么最多同时只能在一个处理器上运行。在双处理器系统上,单线程的程序只能使用一半的CPU资源,而在拥有100个处理器的系统上,将有99%的资源无法使用。另一方面,多线程程序可以同时在多个处理器上执行。如果设计正确,多线程程序可以通过提高处理器资源的利用率来提升系统吞吐率。
线程带来的风险:
- 安全性问题
线程安全性可能是非常复杂的,在没有充足同步的情况下,多个线程的操作执行顺序是不可预测的,甚至会产生奇怪的结果。
- 活跃性问题
- 性能问题