Jni常见技巧与陷阱
发布时间
阅读量:
阅读量
预告
之后可能会推出一个 FFmpeg 系列入门博客,默认涵盖 FFmpeg 解析封装、编码与解码过程、音频采样率转换、AAC 格式转码方法以及音视频素材整合与拼接等内容。
另外如果有时间可能也会更新几篇关于ffplay的文章,敬请关注。
本文充当着JNI系列的最后一篇,在此期间笔者详细地记录了学习使用JNI的心得和实用技巧。
JNIEnv的线程限制
ENV_POINTER只能存在于与其关联的具体线程环境中。无法将此ENV_POINTER从一程序块传输到另一程序块之间,在跨进程或多核心环境下也需谨慎处理。JVM会在同一进程中连续调用本地方法时分配相同的ENV_POINTER用于传递信息,并在此期间动态地将该特定指向器与对应的本地方法进行匹配绑定。然而,在不同进程间或同一进程中不同子任务之间则必须为其各自对应的本地方法独立分配独特的ENV_POINTER实例以避免混淆或数据竞争问题。因此,在实际应用开发过程中应避免在同一进程中缓存用于本地方法调用的ENV_POINTER而将其用于其他地方所带来的潜在问题。
该类引用来说(local references)仅限于它们被创建的那个执行线上段落中。您不得将该类引用来自一个执行线上段落传输给另一个执行线上段落。每当有多个执行线上段落可能存在同一个参考的机会时,则必须始终将其转换为全局参考。
ENVIO被用于实现单个线
全部评论 (0)
还没有任何评论哟~
