A Selector是一个Java NIO组件,可以检查一个或多个NIO通道,并确定哪些通道已准备就绪,例如读取或写入。这样一个线程可以管理多个通道,从而管理多个网络连接。

为什么选择器?

  使用单个线程来处理多个通道的优点是您需要较少的线程来处理通道。你可以使用一个线程来处理你所有的频道。线程之间的切换消耗系统资源较大,每个线程也占用操作系统中的一些资源(内存)。所以你使用的线程越少越好。

  现代操作系统和CPU在多任务处理中变得越来越好,所以随着时间的推移,多线程的开销越来越小。事实上,如果CPU具有多个内核,处理少量任务时会浪费CPU电源。

  这是一个线程使用Selector来管理3个通道的流程图:

Java NIO:A Thread uses a Selector to handle 3 Channel's

创建选择器

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式