一、一个连接一个线程 典型场景BIO模型
二、一个IO事件一个线程 典型场景NIO模型
三、一个业务事件一个线程 典型场景WEB请求异步处理
底层IO模型依赖NIO模型,业务上通过事件驱动处理,一个事件由一个线程处理
3.1 非异步化Web处理请求
等待业务处理完成返回
3.2 异步化Web处理请求,后端服务为阻塞模式
业务处理交给work thread pool,工作线程同步调用完成pipe里的事件完成后返回
3.3 异步化Web处理请求,后端服务为非阻塞模式Push & complete mode
业务处理交给work thread pool,工作线程异步调用pipe里面事件的Service Provider处理,ServiceProvider完成后继续原来的pipe。
3.4 异步化Web处理请求,后端服务为非阻塞模式Pull & resume mode
业务处理交给work thread pool,工作线程异步调用pipe里面事件的Service Provider处理,并把result放入result queue,result标记为未完成。
依赖方线程扫描result queue,查看result是否完成,如果完成,处理自己的逻辑,然后告诉Service Provider继续原来的pipe
3.5 异步化Web处理请求,后端服务为非阻塞模式Pull & Check Status&resume mode
业务处理交给work thread pool,工作线程异步调用pipe里面事件的Service Provider处理,Service Provider完成后把result 放入result queue。
check status线程扫描result queue,取出来的result都是完成的,处理自己的逻辑,然后告诉Service Provider继续原来的pipe