NDK层
#include <sys/syscall.h>
void printTid(){
pid_t tid = syscall(SYS_gettid);
LOGE("gaze","NDK线程id:%ld", tid);
}
Java层
Log.e("调用线程", "java 线程id:" +android.os.Process.myTid());
作用:对比Java和NDK方法互调是否在同一线程中。
结论:Java方法A调用的jni方法B,A和B方法在一个线程中执行。
思考:其实Android是基于Linux内核开发的操作系统,在NDK层调用某些方法时,我们可以考虑Linux方法的使用。
提示:Java ThreadId不能作为比较的依据,因为他们是在系统线程的基础上做了一层封装