为什么 MappedByteBuffer 不能扩展?
Why Can't a MappedByteBuffer Expand?
关于Expanding Java Memory-Mapped Byte Buffer,为什么缓冲区在写入超过限制时不扩展?显然,如果不重新映射缓冲区,甚至没有一种方法可以实现该行为。这对我来说也似乎有些奇怪,因为我想一些开发人员想要它,或者这只是以错误的方式使用缓冲区?
A MappedByteBuffer
是一个 ByteBuffer
是一个 Buffer
,它具有在创建时定义的固定容量。所以 Buffer
的语义阻止了它。
正如@SotiriosDelimanolis 和@fge 所提到的,操作系统语义也阻止了它。内存映射以固定大小创建,如果您在本机级别寻址超过该大小,您将获得 SIGSEGV
.
关于Expanding Java Memory-Mapped Byte Buffer,为什么缓冲区在写入超过限制时不扩展?显然,如果不重新映射缓冲区,甚至没有一种方法可以实现该行为。这对我来说也似乎有些奇怪,因为我想一些开发人员想要它,或者这只是以错误的方式使用缓冲区?
A MappedByteBuffer
是一个 ByteBuffer
是一个 Buffer
,它具有在创建时定义的固定容量。所以 Buffer
的语义阻止了它。
正如@SotiriosDelimanolis 和@fge 所提到的,操作系统语义也阻止了它。内存映射以固定大小创建,如果您在本机级别寻址超过该大小,您将获得 SIGSEGV
.