0

假设java方法方法A()调用native方法read()来读取一些东西。在与?A()相同的线程上调用read()A()受JVM控制,但不受read()系统控制?当得到一些数据时,它怎么read()知道数据是被请求的,A()但不是B()C()JVM如何获取返回的数据read()

4

1 回答 1

1

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

于 2013-07-10T18:53:39.197 回答