1. 所谓的并发对性能的提高在哪里?实质是什么
现在理解的有两种情况:
(1)任务链很长,拆分为多个点接力完成,每个点让一个线程去完成。
(2)某个点任务量特别大,这个点的任务可以并发执行,与是让多个线程去执行这个点的任务。
第(1)种,说白了就是消费者,生产者模型,只不过可以由多个生产者,消费者,接力组成一个流水线。在同一时间,消费者,生产者,都有线程在运行,提高了性能。
如果任务链比较短,那生产者和消费者都由一个线程来做,这就没有对缓冲区加锁的需求了。
第(2)种,首先要求任务是可以并发的,实际上呢,在高并发要求的场合,我们总是想法设法的把能够并发的任务进行切割,对那些不能并发的部分的执行顺序进行控制,比如采用加锁,比如对某个用户的订单排成顺序队列,同一时间只交给一个线程执行,而不同用户的订单,则是可以并发,交由多个线程去执行。