从jni返回的字节缓冲区是副本还是引用?

醉拳大师

我将字节缓冲区从jni返回到Java层。

    getData(JNIENV, *env, jobject obj ) {

    pthread_mutex_lock(&mutexA);


    while(dataAvailable == 0){
        pthread_cond_wait (&cond, &MutexA);
    }

    dataAvailable = 0;

    pthread_mutex_unlock(&MutexA);

    return jnv->NewDirectByteBuffer(DataPointer, dataSize);
}

从Java:

  while (1) {
     ByteBuffer byteBuffer = getData();

  }

这个byteBuffer是否引用到DataPointer,还是复制到Java层的'byteBuffer'变量中?

德智克

Java指南NewDirectByteBuffer

分配并返回一个直接的java.nio.ByteBuffer,它引用从内存地址地址开始并扩展容量字节的内存块。

调用此函数并将返回的字节缓冲区对象返回给Java级代码的本机代码应确保该缓冲区引用的内存有效区域可供读取和(如果适用)写入。尝试从Java代码访问无效的内存位置将返回一个任意值,没有可见的效果,或者导致引发未指定的异常。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在c#中获取unicode缓冲区字节返回'??????'

来自分类Dev

直接字节缓冲区

来自分类Dev

字节缓冲区NSData

来自分类Dev

多个缓冲区还是单个缓冲区?

来自分类Dev

NodeJS缓冲区从字节读取位

来自分类Dev

协议缓冲区消息的字节序

来自分类Dev

PHP中的字节缓冲区?

来自分类Dev

内置追加与字节。缓冲区写入

来自分类Dev

转换NodeJS字节缓冲区

来自分类Dev

从字节缓冲区获取索引

来自分类Dev

nodejs缓冲区是异步还是同步?

来自分类Dev

nodejs缓冲区是异步还是同步?

来自分类Dev

当缓冲区未满时,为什么字节缓冲区会给出缓冲区溢出异常

来自分类Dev

当缓冲区未满时,为什么字节缓冲区会给出缓冲区溢出异常

来自分类Dev

包结构返回缓冲区

来自分类Dev

zlib膨胀返回缓冲区错误

来自分类Dev

返回 libc- 缓冲区溢出

来自分类Dev

JNI直接缓冲区。谁负责释放本机缓冲区?

来自分类Dev

从缓冲区创建QImage,没有深层副本?

来自分类Dev

Java 映射字节缓冲区 - 缓冲区中的垃圾值

来自分类Dev

kmalloc中的缓冲区还是DMA安全缓冲区吗?

来自分类Dev

使用单个顶点缓冲区还是多个顶点缓冲区?

来自分类Dev

使用单个顶点缓冲区还是多个顶点缓冲区?

来自分类Dev

glBindBuffer:缓冲区名称不引用OpenGL生成的缓冲区对象

来自分类Dev

正确的惯用字节缓冲区读写

来自分类Dev

Poco从字节缓冲区解析XML文档

来自分类Dev

YUV缓冲区末尾的额外字节-RaspberryPi

来自分类Dev

Java中的并发读/写缓冲区字节[]

来自分类Dev

在node.js缓冲区中搜索字节模式