场景一
4个医生给人看病,每个病人花费20分钟,而且医生看病的过程中是以病人为单位的,一个病人看完了才能看下一个病人。如果病人源源不断,可以计算一下4个医生一天工作8小时,处理病人总数是:4*8*3=96
场景二
看病可以分为四个步骤:挂号、看病、缴费、取药。
对场景一进行优化,只有一开始,医生2,3,4分别要等待5,10,15分钟才能执行工作,但只要后续病人源源不断,他们就能满负荷工作,并且处理病人的能力提高到了4 * 8 * 12 = 384,netty就是采用的这种方式。
要点
1.单线程没法异步提高效率,必须配合多线程,多核cpu才能发挥异步的优势。
2.异步没有缩短响应时间,反而有所增加。病人挂完号,要走路去看病,看完病要走路去缴费...
3.合理进行任务拆分,也是利用异步的关键。
netty中的异步提升的是吞吐量,并不是每个病人的响应时间。吞吐量就是单位时间内能够处理请求的速度。