2011-03-08 40 views
0

我最近开始使用线程,并试图在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()) 

我明明做错了什么,而不是实现这一权利......我应该怎么去呢?我是否让任务顺利进行?感谢您的任何帮助,非常感谢!

+0

所有列表中进行队列差(包括链表) – bestsss 2011-03-08 22:37:53

+0

因为你只在队列同步,请使用类似的LinkedBlockingQueue已经同步队列。 – 2013-08-06 20:53:12

回答

7

你正在初始化队列变量吗?像:

List<Runnable> queue = new ArrayList<Runnable>(); 
+0

谢谢你的快速反应,解决了我的问题! – 2011-03-08 18:16:39

相关问题