我与《Java异步编程实战》的故事

我是一名程序员,过着996的生活。

但我创造了一个世界,这个世界很忙碌,每天不停地运转,在这个世界里,我是它们的造物者,掌管着所有人的生杀大权。

这个世界由多个部门组成,为了使这个世界有条不紊地运转,我费了很多功夫,还需要定时地检查运转情况,比如谁偷懒了,谁累趴了等等。

这个世界都是同步执行的,看似平静,但随着外面世界的变化,这种平静慢慢地被打破了。

首当其冲的是我们的网络驿站,主管部门是网络通信部,它负责处理外部给他的包裹,并按照包裹内的指示作出回应,最近给他投递包裹的人越来越多,线程工厂那边搬运完包裹,交给数据库管理员后,就静静地喝茶看报,等待结果,数据库满头大汗地跑来跑去,好不容易凑足了数据,刚交给线程厂的小伙子,下一个包裹又来了,马不停蹄也做不完,主子又不肯加人手,干脆不干了……

原来这个世界是虚拟的电商系统。

程序员察觉到异常,开始盘查这个世界的运作情况,他发现线程厂的小伙子们总是特别闲,成天到晚喝茶、游手好闲,便叫了线程厂厂长来训话,厂长也是一脸委屈,这不能怪我啊,我们都是在等数据库工厂那边,他们太慢啦,又不让我们干别的事,只能等啦。

程序员又把网络驿站的站长叫来,站长也是相当无奈,我们就只有那么多服务窗口啊,线程厂那边没响应数据给我们,我们就只有等啦,排队的人多了,怕引起踩践事故,后面就不让人进来了。

程序员开始陷入了沉思,这个世界的运作规则,可能要改一改了。

从线程工厂那边开始整改,因为就他最闲。

经过一番试验,给线程厂制定了新的工作规则:新招了一个叫Future的员工,线程小伙子把包裹数据给了数据库后,就可以把工作任务交给Future了,小伙子们去拿下一个包裹,由Future负责接收数据库的结果。

新的规则生效后,线程厂的小伙子们,喝茶看报的日子少了,忙的时候,额头也开始冒汗了,程序员对这个结果露出了一丝微笑。

平静的日子持续了一段时间,外面的人对这个世界更感兴趣了,交流也逐渐变多了,各部门要开始忙碌起来了,偶尔向程序员吐槽吐槽人手不够的问题,看来还需要进一步提高效率才行。

这次没上回那么紧迫,可以对所有部门好好梳理梳理。

各部门呈报上来的整改方案:
1. Controller小组反馈:外部给我们的包裹指示,有部分工作的结果是不需要响应给外部的,但我们也在等他们处理的结果,要求这部分异步化处理。
2. Servlet小组反馈:我们提供的IO是阻塞式的,没有人手处理时,会造成外部卡顿,要求改成非阻塞IO。

程序员找来《Java异步编程实战》,开始新的一轮重构...

我与《Java异步编程实战》的故事