JVM如何获得本机方法的返回值?

时间:2013-07-10 08:34:35

标签: callback jvm java-native-interface native

假设java方法方法A()调用本机方法read()来读取内容。 A()在与read()相同的线程上调用了吗? A()在JVM的控制之下,但不是read()由系统控制? 当read()获得一些数据时,如何知道数据是A()而非B()C()请求的? JVM如何获取read()

返回的数据

1 个答案:

答案 0 :(得分:1)

通常在JVM中,本机调用是通过同一线程中的JNI执行的。在现代JVM中,Java线程实现为本机OS线程。当Java方法A调用read()时,它可以从托管切换到 native ,但它的行为与正常的同步函数调用一样。