我最近开始使用线程,并试图在Android中完成Looper类的Java实现。基本上我正在创建一个Java类,将线程放入队列中,然后由Looper类执行。我已经完成了大部分代码,但是在排队任务时遇到了问题。JAVA:可能将可运行线程添加到队列中?
在弯针类我有声明的队列和我的排队方法:
List<Runnable> queue;
public synchronized void enqueue(Runnable runnable) {
queue.add(runnable);
notify(); // signal a waiting thread
}
然后我创建了一个名为任务管理器,以任务添加到队列中另一个类。我收到的时候我叫了错误:
loop.enqueue(new Task());
哪里任务()实现Runnable,只是增加了两个整数在一起,在其run()方法......这仅仅是一个考验。
我收到的错误是:
Exception in thread "Thread-0" java.lang.NullPointerException
at Looper.enqueue(Looper.java:20) (this is the queue.add(runnable))
at TaskMaker.run(TaskMaker.java:16) (this is the loop.enqueue(new Task())
我明明做错了什么,而不是实现这一权利......我应该怎么去呢?我是否让任务顺利进行?感谢您的任何帮助,非常感谢!
所有列表中进行队列差(包括链表) – bestsss 2011-03-08 22:37:53
因为你只在队列同步,请使用类似的LinkedBlockingQueue已经同步队列。 – 2013-08-06 20:53:12