gpt4 book ai didi

java - Java 进程退出时是否返回 JNI DLL 使用的内存?

转载 作者:行者123 更新时间:2023-11-30 06:31:32 25 4
gpt4 key购买 nike

继承了一个Java小项目的维护,有一个DLL依赖(JNI)。使用一组参数调用 java 程序,这些参数被发送到 DLL(并进一步发送到第三方 API)。输入和输出都是简单的字符串。

DLL 使用的内存,是从 java 进程的堆中分配的吗?因此,这是否意味着当 java 程序退出时,此进程中的所有内存(包括 DLL 使用的内存)都返回给系统?

(我们正在谈论 Windows Server 2008 和 Java 1.6,如果这些细节很重要的话。)

最佳答案

操作系统负责在进程终止时清理进程分配的所有内存。

DLL 被加载“到”进程中。

因此,当 JVM [进程] 终止时,所有 内存(包括由 DLL 分配的内存)将由操作系统回收。

请注意,这不包括外部资源,例如来自已启动但未终止的其他 [子] 进程的资源或在其他地方仍具有打开句柄的共享资源,或操作系统控制之外的其他资源(例如分布式缓存)。

快乐编码。

关于java - Java 进程退出时是否返回 JNI DLL 使用的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9672977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com