呵呵,CSDN里的朋友们真实在,没有分的题目基本上不回.
同样的问题因为没有给分到现在一直没有人帮忙解答.只能删掉重开有分的贴.
(呵呵,刚注册没太多的分,还请大家不要觉得少)
Selector selector = Selector.open();
和
Selector selector = SelectorProvider.provider().openSelecotr();
请问一下大家这两者的区别.
同样的问题因为没有给分到现在一直没有人帮忙解答.只能删掉重开有分的贴.
(呵呵,刚注册没太多的分,还请大家不要觉得少)
Selector selector = Selector.open();
和
Selector selector = SelectorProvider.provider().openSelecotr();
请问一下大家这两者的区别.
public abstract class SelectorProviderextends Object用于选择器和可选择通道的服务提供程序类。 选择器提供程序是此类的一个具体子类,它具有零参数的构造方法,并实现了以下指定的抽象方法。给定的对 Java 虚拟机的调用维护了单个系统级的默认提供程序实例,它由 provider 方法返回。第一次调用该方法将查找以下指定的默认提供程序。
系统级的默认提供程序由 DatagramChannel、Pipe、Selector、ServerSocketChannel 和 SocketChannel 类的静态 open 方法使用。System.inheritedChannel() 方法也使用它。除了默认提供程序之外,程序还可以使用其他提供程序,方法是通过实例化一个提供程序,然后直接调用此类中定义的 open 方法。
openSelector()
打开一个选择器。API上面都有的
{
return SelectorProvider.provider().openSelector();
}這樣還有什麼區別?:)
这两种方法都是打开一个选择器,我运行后感觉没什么区别.
我只是想问一下大家两者的区别而已,什么情况下用谁更合适.
如果调用Selector open() 方法,返回的却是SelectorProvider.provider().openSelector();
仅仅因为一个是静态的,一个是抽象的?
现在明白了.