2023-01-20 312
当我在C ++中创建本机实现对等时,当JVM删除Java对象时,如何确保本机部件也会被删除?我可以添加Java对象的用户必须明确调用的一些方法,但是我想知道是否有一些挂钩可以在删除Java对象(收集垃圾)时可以处理某些钩子,以便我可以自动删除C ++实现对象也.
我回顾了 jace 似乎是这样做的,但是我需要运行Peerenhancer修补程序生成的类文件(可能是挂钩的方式?或者它需要此修补程序来处理其他内容).但是,我想避免弄乱编译的java文件,我不想要任何花哨的东西
这是一个难得的情况,您应该真正使用最终制度,但您也应该使您的Java类也可以关闭.
请注意,通过拥抱最终化器,您在最糟糕的地方挠痒痒.在finalizer()中调用JNI就像在驾驶时调整发动机阀的时机.尽管从技术上讲是可能的,但最终泄漏JVM或崩溃也很容易.甚至丝毫触摸多线程,您肯定会在某个时候死锁/崩溃.如果您说”我不想要任何花哨的东西”,我建议使用明确称为方法.是的,要求按惯例进行某些方法顺序是肮脏的设计,但是JNI一般都很肮脏.
如果受人尊敬的JNI库可以执行卧底式仪器,而不是简单地使用最终化器,则可能是有原因的.一些建议阅读(甚至没有提及JNI!):
我的建议是:是的,用虚拟方法distachfrompeer()实现了一个基本,在其中设置了一些”独立”标志,然后在最终器中只需检查标志.
.
以上所述是小编给大家介绍的JNI:正确管理一个Java对象的生命周期,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/25921.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态