Я недавно начал работать с потоками и пытаюсь завершить реализацию Java класса Looper в Android.В основном я делаю класс Java, который помещает потоки в очередь, которая затем будет выполняться классом Looper.У меня есть код, выполненный по большей части, но у меня проблема с постановкой задач.
В классе Looper у меня объявлена очередь и мой метод постановки в очередь:
List<Runnable> queue;
public synchronized void enqueue(Runnable runnable) {
queue.add(runnable);
notify(); // signal a waiting thread
}
Затем я создал еще один класс с именем TaskManager для добавления задач в очередь.Я получаю сообщение об ошибке:
loop.enqueue(new Task());
Где 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())
Я, очевидно, что-то делаю не так и не реализую это право ... как мне поступить?Правильно ли я ставлю задачу?Спасибо за любую помощь, она очень ценится!