线程和ARM处理器利用率

时间:2013-09-23 17:18:11

标签: android android-ndk pthreads

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

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 );
}

0 个答案:

没有答案