我已经为Android编写了一个加载本机代码(.so文件)的测试程序。
在本机代码中,我正在通过pthread_create
函数创建一个本机线程。
代码非常简单:
void *threadProc(void *) {
while (true) {
usleep(100000);
__android_log_printf(ANDROID_LOG_INFO, "TAG", "IN LOOP");
}
return NULL;
}
pthread_create(&t, NULL, threadProc, NULL);
在adb logcat
中,我看到开始时有大约100毫秒的日志,但是随着时间的推移,它开始堆积几秒钟。当我的应用程序进入后台时,一切开始正常运行,每隔约100毫秒我就会看到日志。当应用程序进入前台时:再次线程“堆栈”。
为什么?举例来说,‒我正在尝试与具有循环的线程中的epoll
进行网络连接,同样的事情也发生了。谁能帮我吗?
我的设备:搭载Android 8的Samsung S8。
谢谢!