Android本机线程冻结

时间:2019-03-03 17:43:40

标签: java android c

我已经为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。

谢谢!

0 个答案:

没有答案