native
methods within a synchronized
block or method.
When possible, it's better to keep calls to native
methods out of the synchronized context
because such calls cause an expensive context switch and may lead to performance issues.
Example:
native void nativeMethod();
void example(){
synchronized (lock){
nativeMethod();//warning
}
}