[英]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.