我非常清楚何时需要翻转ByteBuffer
。我的问题指向在put
- 和get
- 之间建立隐式合同以减少错误。
在将缓冲区提供给getter之前,推杆flip
?或者在收到缓冲区后获取flip
?
我倾向于推杆翻转缓冲区,因为有意义的是,getter总是会收到准备好的缓冲区。
有先例吗?你做什么的?
答案 0 :(得分:2)
据我所知,最佳做法是将缓冲区保持在可读/可放入状态,并在写入或获取之前立即保留flip()
,然后立即compact()
。作家/获得者应该自己这样做,而不是依靠其他人为他做这件事。请注意,应在compact()
块中调用finally
。