本章节中主要涉及的是三个组件:ManagerSelector,Producer(SelectoeProducer),ExecutionStrategy
其中三个组件的作用如下:
1,ManagerSelector用于其他调用者注册感兴趣事件和事件对应的处理逻辑。
如何注册感兴趣事件和处理逻辑呢?提供了两个接口:SelectorUpdate和Selectable,
其中SelectorUpdate接口让调用者可以网ManagerSelector中的Selector注册感兴趣事件,
其中Selectable接口让调用者提供一个处理逻辑。
2,Producer是一个发动机,它的作用就是:注册 --> 获取就绪的IO --> 产生对应的处理任务
上述对应了其内部的三个方法:processUpdates,select,processSelected
其对应的实现类为:ManagerSelector.SelectoeProducer
3,ExecutionStrategy则是上面Producer接口产生处理任务的执行策略了,jetty中默认的策略有:
a,ProduceConsume 单线程创建和执行所有任务
b,ProduceExecuteConsume 专门线程创建任务,然后任务放进线程池中执行
c,ExecuteProduceConsume 一个线程中创建任务并执行,同时启动另一个线程进行任务的创建
和执行,其中顺序是:创建任务 --> 开启新线程(使用线程池) --> 执行任务
d,EatWhatYouKill 判断当前当前是否系统忙碌,在ProduceExecuteConsume和ExecuteProduceConsume
运行模式中切换
较于理解(不准确)的执行顺序:调用者 --> ManagerSelector --> SelectoeProducer --> ExecutionStrategy
这样总结对么?老师。
展开