1

再会!我将基于posix线程的linux应用程序移植到android。我需要线程每 20 毫秒从我的 USB 设备读取数据。但是当我使用它时,我的 cortex-a15 (exynos 5410) 时钟从 250 Mhz 变为 1.8Ghz。有没有办法在android NDK中使用定期工作,或者如何降低pthreads的cpu利用率?提前致谢 再见

void dynamics_thread::run()
{
        _done = false;
        QueryPerformanceCounter((__int64_t *)&init_time);  // Get current count
        do
        {
                //YieldCurrentThread();
                if (raschet_flag)
                {
                        __int64_t freq;
                        QueryPerformanceCounter((__int64_t *)&current_time);  // Get current count
                        QueryPerformanceFrequency((__int64_t *)&freq); // Get processor freq
                        current_time-=init_time;
                        deltaTime = (float)((float)(current_time - gLastTime)/(float)freq);
                        if (deltaTime>=0.02f)
                        {
                        gTime = (float)((float)(current_time)/(float)freq);
                        //osg::notify(osg::WARN)<<"begin "<<gTime<<std::endl;
                        gLastTime = current_time;
                        // do some work  
                        }

                }
                microSleep(20000);
        }
        while( !_done );
}
4

0 回答 0