package com.cooly;import java.util.LinkedList;/*** @author coolyqq*인쇄 프린터 대기열 인쇄 시뮬레이션*배포 클래스*/public class DataDistribute {private static DataDistribute 인스턴스 = null;private final static byte[] obj = new byte[0];//잠금 메커니즘 private LinkedList<DataDistributeEntity> task = 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();}}}인스턴스 반환 ;}/*** @param 엔터티* 작업 추가*/public void addTask(DataDistributeEntity 엔터티){synchronized (obj) {tasks.add(entity);}}/*** @param 엔터티* 즉시 작업 추가*/public void addSpeedTask(DataDistributeEntity 엔터티){synchronized (obj) {tasks.addFirst(entity); }}공개 무효 시작(ICallBack 콜백){if(tasks==null||tasks.isEmpty()||!this.isColse){return;}else{this.isColse = false;}while(true){DataDistributeEntity 엔터티 = task.poll(); if(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;}}