调用本机代码时JVM是否会停止?

从Java的字节码调用机器代码时是否有任何性能影响? 由于机器代码是“非托管”的,并且它没有“意识到”Java的内部结构,这可能导致JVM的内部调度程序暂停或类似的东西?

我是Java的新手,所以也许这甚至不相关,请帮忙。

我知道在Erlang中他们遇到了这个问题,VM在调用机器代码时基本停止了。 我希望Java不是这种情况。 是吗?

运行本机代码的线程不会停止JVM。

一旦调用了JNI方法,Java线程就会切换到_thread_in_native状态。 在安全点操作期间不计算处于此状态的线程,即当发生stop-the-world事件时(如垃圾收集),JVM不会停止这些线程。 相反,本机状态的线程无法阻止JVM,除非它们执行JNI上行调用。 当本机方法返回时,线程切换回_thread_in_Java状态。