如何改进代码以更好地与处理器配合工作?
我有一个类,在单独的线程中以固定周期执行某些任务。有时,这个过程可能会暂停和恢复。目前我正在使用一个标志来暂停,它运行良好,但在此方式下循环仍然会在进程暂停时加载处理器。是否有解决方法?
private boolean mIsCanceled = false;
private boolean mIsPaused = true; // TODO more efficient for processor way of pausing is required
private final Thread mTimerThread = new Thread(new Runnable() {
@Override
public void run() {
while(!mIsCanceled){
try {
Thread.sleep(UPDATE_PERIOD);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (!mIsPaused){
doStep();
}
}
}
});
public MyClass(){
mTimerThread.start();
}
private void pause(){
mIsPaused = true;
}
private void resume(){
mIsPaused = false;
}
private void doStep(){
// Some code
}
请提供我代码的替代实现。
附注:环境是Android操作系统2.2+。