如何使用CompletionHandlers和小于请求的ByteBuffer读取请求?
发布时间:2020-12-14 19:19:40 所属栏目:Java 来源:网络整理
导读:我正在使用Java 7和 AsynchronousSocketChannel .我想阅读一个请求(例如HTTP POST)但我很难想出一个很好的解决方案来读取完整的请求,如果它比ByteBuffer的大小我是使用.例如.如果ByteBuffer是4048字节,HTTP POST包含的图像大于4kB. 这有什么好的递归解决方案
我正在使用Java 7和 这有什么好的递归解决方案或循环吗? 这是我的阅读请求代码:
我写的地方:
它看起来是代码重用的好地方,但我无法想出一个很好的解决方案.有什么方法可以在这里重用CompletionHandler吗?有关使用有限的ByteBuffer阅读完整请求的任何建议? 我想以非阻塞和异步方式解决这个问题. 最佳答案
在读取数据块时,从java管理的线程异步调用complete方法.要重用CompletionHandler:
java人员建议当你完成读操作(else块)时,你应该使用另一个线程上下文. 这是为了避免在CompletionHandler中阻塞和长期操作的文档,请参阅第33页http://openjdk.java.net/projects/nio/presentations/TS-4222.pdf (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- base-n系列生成器,用于java中的给定数字,
- java – 替代CutyCapt
- 直接在Java中设置ArrayList的值
- Numpy中的三个常用正态分布函数randn,standard_normal, n
- java – 使用原始类型和包装类的varargs重载时为什么会出现
- 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节
- java – 我应该同步静态volatile变量吗?
- java – 使用JPA和Hibernate在Persistence.xml中配置C3P0
- java – JVM Spec,JVM Implementation,JVM Runtime之间的区
- 开源JavaFX 2.0组件库[已关闭]