微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java垃圾收集器是否会停止从JNI调用创建的POSIX线程?

我有一个时间关键的应用程序,需要按照设定的时间表发送UDP数据报.接收端的抖动容限非常低.使用 java ScheduledThreadPoolExecutor实现它是不够的,因为当GC执行“Stop the World”集合时,我的线程会在GC完成它的工作时暂停.

我想用Java实现业务逻辑,同时用C语言中的POSIX线程实现时间关键部分(顺便说一句,本机环境是Linux).这将允许我们保存数千行用Java编写的代码,并从本机系统调用中获得所需的调步.

我的问题是:如果我调用一个创建一个单独的POSIX线程的JNI函数,当Java GC执行“停止世界”集合时,该线程将被“暂停”吗?经验丰富的JNI大师是否有任何陷阱想用这种方法指出或者建议采用任何其他方法

一如既往,感谢令人敬畏的堆栈溢出社区!

解决方法

它不应该阻止posix线程(假设gc不使用那么多的cpu,其他系统调用将被阻止).我认为它会阻止从java应用程序访问posix线程,但只能在非常有限的时间内访问.

原文地址:https://www.jb51.cc/java/128908.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐