簡體   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