2013-07-10 42 views
0

假设java方法方法A()调用本地方法read()来读取某些内容。是A()在与read()相同的线程上调用? A()是在JVM的控制下,但不是由系统控制的read()? 当read()得到了一些数据,它怎么知道数据是A()所请求的,而不是B()C()? JVM如何获取read()返回的数据?JVM如何获得本地方法的返回值?

回答

1

通常在JVM中,本地调用通过JNI在同一个线程中执行。在现代JVM中,Java线程被实现为本地OS线程。当Java方法A调用read()时,它可能会从被管理的切换到本机,但它的行为与正常的同步函数调用相同。

相关问题