第一段代码不是异步进程,服务程序从请求中接收到一个参数,然后再从数据库或网页等资源中取到基于该参数的信息,这时这些资源进行的很慢,造成了堵塞操作,服务程序使用从资源中得到的结果引起响应。
第二段代码是异步进程,request.startAsync()使得请求处于异步进程,通过acontext.start(new Runnable() {...})进入一条新的线路,使用内部类的run()执行这条新的线路,内部类有读取请求的参数和写响应的异步环境的入口,再使用 complete()把响应发送到客户端。