繁体   English   中英

如何在JNI中将事件/信号从C发送到Java

[英]How to send events/signal from C to Java in JNI

是否有通过JNI从C到Java或反之的异步事件/信号发送机制? 我需要捕获从C到Java的信号/事件。

听起来有些棘手,因为JNI应该是单向的:Java代码可以调用本机方法,当然可以调用本机方法,但是它本身不能启动该过程。

但这并非不可能,我认为最直接的解决方案是阻塞本地调用,直到收到信号为止。

另一个选择是编写JVMTI代理,它可以主动干扰正在运行的VM。

但是,如果我们谈论的是UNIX信号,则可以使用非公开的API(因此在将来无法保证,并且特定于Sun VM)但可以使用现有的sun.misc.Signal类进行处理。

您可以从C代码中调用Java方法。 请参阅JNI文档。 另请参见http://journals.ecs.soton.ac.uk/java/tutorial/native1.1/implementing/method.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM