paquete com.cooly;import java.util.LinkedList;/*** @author coolyqq*Simular impresión impresión de cola de impresora*Clase de distribución*/clase pública DataDistribute {instancia de DataDistribute estática privada = nulo;byte estático final privado[] obj = nuevo byte[0];//Mecanismo de bloqueo private LinkedList<DataDistributeEntity> task = null;//Tareas de distribución private boolean isColse = true;private DataDistribute() {tasks = new LinkedList<DataDistributeEntity>();}/*** @return* Obtener instancia*/public static DataDistribute getInstance(){if(instancia == null){sincronizado (obj) {if(instancia == null) {instancia = new DataDistribute();}}}return instancia;}/*** @param entidad* Agregar tarea*/public void addTask(DataDistributeEntity entidad){sincronizado (obj) {tasks.add(entidad);}}/*** @param entidad* Agregar tareas inmediatamente*/public void addSpeedTask(DataDistributeEntity entidad){sincronizado (obj) {tasks.addFirst(entidad); }}inicio de anulación pública (ICallBack devolución de llamada){if(tasks==null||tasks.isEmpty()||!this.isColse){return;}else{this.isColse = false;} while(true){DataDistributeEntity entidad = tareas.poll(); if(entidad==null){this.isColse = true;break;}callback.call(entidad);tasks.remove(entidad);}System.out.println("fsf");}public boolean isColse() {return isColse;}public void setColse(boolean isColse) { this.isColse = esColse;}}