IZI*_*IZI 0 java queue multithreading priority-queue runnable
我最近开始使用Threads,我正在尝试在Android中完成Looper类的Java实现.基本上我正在创建一个Java类,它将线程放入一个队列,然后由Looper类执行.我已经完成了大部分代码但是在排队任务时遇到了问题.
在Looper类中,我声明了队列和我的入队方法:
List<Runnable> queue;
public synchronized void enqueue(Runnable runnable) {
queue.add(runnable);
notify(); // signal a waiting thread
}
Run Code Online (Sandbox Code Playgroud)
然后我创建了另一个名为TaskManager的类来将Tasks添加到队列中.我打电话时收到错误:
loop.enqueue(new Task());
Run Code Online (Sandbox Code Playgroud)
其中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())
Run Code Online (Sandbox Code Playgroud)
我显然做错了什么并没有实现这个......我该怎么做呢?我排队的任务是正确的吗?感谢您的帮助,非常感谢!
你在初始化队列变量吗?喜欢:
List<Runnable> queue = new ArrayList<Runnable>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1792 次 |
| 最近记录: |