gpt4 book ai didi

java - 在 JNI 上调用 AttachCurrentThread 是否很容易?

转载 作者:行者123 更新时间:2023-11-27 22:32:50 43 4
gpt4 key购买 nike

我在这里找到了 https://stackoverflow.com/a/12901159/6655884一个函数调用,它使用 AttachCurrentThread 附加线程,执行调用,然后使用 DetachCurrentThread 将其分离。

我想知道这个过程是否昂贵。我有一个 C++ 函数

void sendEvent(Event event) {
//call java function here
}

这将由多个 C++ 线程调用以将事件发送到 Java 端,因此我不能简单地附加一个线程并且从不分离它,因为许多不同的线程将调用 sendEvent。所以我想知道在每次 sendEvent 调用时执行 AttachCurrentThread、调用 Java 然后 DetachCurrentThread 是否代价高昂。如果是,我应该怎么做?

最佳答案

虽然您可以将调用线程附加到每个 JNI 调用基础上,但您真的不应该,除非您别无选择。 native 线程必须先将自身附加到 JVM,然后才能进行 JNI 调用。为了避免不必要的开销,线程确实应该尽快附加自身(至少在第一次 JNI 调用之前),并保持附加状态直到它不再需要进行任何进一步的 JNI 调用。

关于java - 在 JNI 上调用 AttachCurrentThread 是否很容易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58810143/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com