แพ็คเกจ com.cooly; นำเข้า java.util.LinkedList;/*** @author coolyqq * จำลองการพิมพ์การพิมพ์คิวเครื่องพิมพ์ * คลาสการกระจาย * / คลาสสาธารณะ DataDistribute {อินสแตนซ์ DataDistribute คงที่ส่วนตัว = null; ไบต์คงที่สุดท้ายส่วนตัว [] obj = ใหม่ ไบต์ [0];//กลไกการล็อคส่วนตัว LinkedList <DataDistributeEntity> งาน = null;//งานการกระจายงานบูลีนส่วนตัว isColse = true; dataDistribute ส่วนตัว () {tasks = new LinkedList<DataDistributeEntity>();}/*** @return* รับอินสแตนซ์*/public static DataDistribute getInstance(){if(instance == null){synchronized (obj) {if(instance == null) {instance = new DataDistribute();}}} return instance ;}/*** @param เอนทิตี* เพิ่มงาน*/public void addTask(DataDistributeEntity เอนทิตี){ซิงโครไนซ์ (obj) {tasks.add(เอนทิตี);}}/*** @param เอนทิตี* เพิ่มงานทันที*/โมฆะสาธารณะ addSpeedTask(เอนทิตี DataDistributeEntity){ซิงโครไนซ์ (obj) {tasks.addFirst(เอนทิตี); }}การเริ่มต้นโมฆะสาธารณะ (ICallBack โทรกลับ){if(tasks==null||tasks.isEmpty()||!this.isColse){return;}else{this.isColse = false;}ในขณะที่(จริง){เอนทิตี DataDistributeEntity = Tasks.poll(); ถ้า(เอนทิตี==null){this.isColse = จริง; แบ่ง;} callback.call (เอนทิตี); งาน. ลบ (เอนทิตี); } System.out.println ("fsf");} บูลีนสาธารณะ isColse () { กลับ isColse; } โมฆะสาธารณะ setColse (บูลีน isColse) { this.isColse = isColse;}}