gpt4 book ai didi

java - Java中的Selector有什么好处

转载 作者:行者123 更新时间:2023-12-02 05:55:59 25 4
gpt4 key购买 nike

据我所知,我们可以将所有 SocketChannel 注册到服务器端的一个 Selector 中,但为什么呢?将这些 SocketChannel 添加到 ArrayList,然后手动迭代这个 List 有什么区别吗?

最佳答案

选择器允许 JVM 实现通过将工作下推到适当的内核/驱动程序来有效地与操作系统 select/epoll/kqueue(或等效)机制一起工作。现代操作系统实现此类函数的时间复杂度通常被认为是 O(1)。

也就是说,Java 本身可以“hibernate ”,直到底层操作系统向一个或多个 channel 发出信号 - 这是通过选择器在 Java NIO 中配置和报告的。

当与选择器循环时,选择将“阻塞”直到 channel 发生变化 - 因此与选择器保持一致可以让人们有效地找到相关 channel 并处理它们。上述目标的一部分是保持“每个事件”处理 O(c),其中在处理 n 个 channel 时 c << n。

关于java - Java中的Selector有什么好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23082189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com