void Java_Package_Multithreading_againCallReadFile
(JNIEnv *env, jobject obj) {
if((*env)->MonitorEnter(env,obj) == JNI_OK) {
printf("Now you can call the synchronised method !");
} else {
printf("oops ! Failed to acquire the lock.");
}
}
上記のメソッドから、同期されていて別のスレッドで使用されている可能性のあるメソッドを呼び出すことができるかどうかを確認したいと思います。MonitorEnter
実際にチェックするもの。私はそのドキュメントを読みましたが、それが何であるかを理解していません。私がしたいのは、そのメソッドを呼び出しても安全かどうかを確認した後、その同期メソッドを呼び出すことです。if
上記の方法は、ステートメントが満たされている場合でも致命的なエラーが発生するため、正しくないようです。