gpt4 book ai didi

java - 有没有办法取消一个 key ,以便我以后仍然可以使用 java nio 读取它

转载 作者:行者123 更新时间:2023-12-02 07:23:50 25 4
gpt4 key购买 nike

我们希望将 tcp 流量控制作为新 java nio 库的主要组件。它会像这样工作......

  1. 库将数据发送到 Listener.incomingData(DataChunk dataChunk);
  2. 在调用 dataChunk.processed() 之前,即使有任何数据,库也不会触发任何数据。
  3. 通常,您可以在前几个 dataChunk 上调用processed() 方法,但在某些消息的最后一个上,您可以写入某个远程套接字并为其提供回调处理程序。
  4. 一旦调用 write 回调,您就可以调用最后一个 dataChunk.processed() 来再次解除 tcp 流控制

重要提示:如果您不从 nic 缓冲区读取数据,则在第 2 步中 TCP 流量控制会自动启动。这都是自动的(我们使用 java nio 对其进行了测试)。但问题是我们如何将 key 置于轮询器停止释放并等待除此之外的所有其他套接字上的数据的状态。我不介意它是否在有新数据时释放,因为我们会看到最后一个 dataChunk 尚未处理并忽略它,但我们不希望轮询器线程循环 100% cpu。有没有办法实现这一点,以便我们可以使用这个潜在的开源 nio 框架实现对任何服务器的自动限制。

最佳答案

只需取消它并稍后重新注册 channel ,或者通过更改其 interestOps() 取消注册它的 OP_READ,然后在您需要时将其更改回来准备好再次阅读。

关于java - 有没有办法取消一个 key ,以便我以后仍然可以使用 java nio 读取它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13812854/

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