已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
昨天关门了。
Improve this question
我正在进行一个java-rust项目,在这个项目中我使用rust中的j 4 rs crate来翻译rust函数,使它们可以通过java接口使用。This repo包含了一些使用j 4 rs的初学者示例代码,我将其用作模板。
我的rust项目涉及到向服务器发送HTTP请求的异步函数,我需要在java语言接口中使用它。我应该如何继续为我的java调用添加wait synchronization到rust函数?
下面是发送HTTP请求的rust函数:
#[call_from_java("io.github.astonbitecode.j4rs.example.RustSimpleFunctionCall.fnnoargs")]
async fn my_function_with_no_args() {
let response = reqwest::get("http://127.0.0.1:8081").await;
}
这里是j 4 rs的github存储库供参考。
1条答案
按热度按时间j9per5c41#
用
call_from_java
注解的函数实际上是由Java线程调用的JNI函数。我假设,如果您想在Rust端进行异步调用,在Java线程调用函数之后,您应该使用例如时雄来生成任务,就像您从主(而不是
async
)函数中所做的那样。下面是有关如何桥接异步/非异步代码的一些详细信息:https://tokio.rs/tokio/topics/bridging
在Java方面,我不确定JNI支持多少异步...