Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.aaaaa.bbbbb.threads;
- import com.aaaaa.bbbbb.Main;
- import com.aaaaa.bbbbb.tasks.Task;
- import java.util.*;
- public class TaskHandler extends Thread {
- private List<Task> taskList = Collections.synchronizedList(new ArrayList<>());
- private List<Task> toAdd = Collections.synchronizedList(new ArrayList<>());
- Timer timer = new Timer();
- public TaskHandler(Main s) {
- super();
- }
- public void run() {
- while (true) {
- try {
- taskList.addAll(toAdd);
- toAdd.clear();
- Iterator<Task> itr = taskList.iterator();
- while(itr.hasNext()) {
- Task t = itr.next();
- if (t == null) {
- itr.remove();
- } else if (t.validate()) {
- Task t2 = t.deepCopy();
- t2.execute();
- itr.remove();
- }
- //Thread.sleep(50);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- public void addTask(Task task) {
- toAdd.add(task);
- }
- public void addAllTasks(List<Task> list) {
- toAdd.addAll(list);
- }
- public String toString() {
- StringBuilder s = new StringBuilder();
- for(Task t : taskList) {
- s.append(t.toString()).append("\n");
- }
- return s.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment