пакет com.cooly;import java.util.LinkedList;/*** @author Coolyqq*Имитация печати очереди принтера*Класс распределения*/публичный класс DataDistribute {частный статический экземпляр DataDistribute = null;частный окончательный статический байт[] obj = новый byte[0];//Механизм блокировки Private LinkedList<DataDistributeEntity> Tasks = null;//Задачи распределения Private boolean isColse = true;private DataDistribute() {tasks = new LinkedList<DataDistributeEntity>();}/*** @return* Получить экземпляр*/public static DataDistribute getInstance(){if(instance == null){synchronized (obj) {if(instance == null) {instance = new DataDistribute();}}}return экземпляр;}/*** @paramentity* Добавить задачу*/public void addTask(DataDistributeEntity entity){synchronized (obj) {tasks.add(entity);}}/*** @paramentity* Добавить задачи немедленно*/public void addSpeedTask(DataDistributeEntityentity){synchronized (obj) {tasks.addFirst(entity); }}public void start(ICallBack обратный вызов) {if(tasks==null||tasks.isEmpty()||!this.isColse){возврат;}else{this.isColse = false;} while(true){DataDistributeEntityentity = Tasks.poll(); если (entity == null) {this.isColse = true;break;}callback.call(entity);tasks.remove(entity);}System.out.println("fsf");}public boolean isColse() {return isColse;}public void setColse(boolean isColse) { this.isColse = isColse;}}