我在一个单独的线程上有一个简单的任务处理。
class MyHandlerThread extends Thread {
Handler mHandler;
public void run() {
Looper.prepare();
mHandler = new Handler();
Looper.loop();
}
}
如何确定looper当前是忙于处理消息还是消息队列为空并且正在等待消息?我想从另一个线程那样做。
基本上,我想知道处理程序何时完成了我刚刚提交的任务。
答案 0 :(得分:1)
您可以使用synchronized方法确定线程是否忙碌
示例:
public class MsLunch {
private long c1 = 0;
private long c2 = 0;
private Object lock1 = new Object();
private Object lock2 = new Object();
public void inc1() {
synchronized(lock1) {
c1++;
}
}
public void inc2() {
synchronized(lock2) {
c2++;
}
}
}
更多信息:http://docs.oracle.com/javase/tutorial/essential/concurrency/locksync.html