模拟打印机排队打印效果

时间:2021-05-19

package com.cooly;import java.util.LinkedList;/*** @author coolyqq*模拟打印打印机排队打印*分发类*/public class DataDistribute {private static DataDistribute instance = null;private final static byte[] obj = new byte[0];//锁机制private LinkedList<DataDistributeEntity> tasks = null;//分发任务private boolean isColse = true;private DataDistribute() {tasks = new LinkedList<DataDistributeEntity>();}/*** @return* 获取instance*/public static DataDistribute getInstance(){if(instance == null){synchronized (obj) {if(instance == null){instance = new DataDistribute();}}}return instance ;}/*** @param entity* 添加任务*/public void addTask(DataDistributeEntity entity){synchronized (obj) {tasks.add(entity);}}/*** @param entity* 立即添加任务*/public void addSpeedTask(DataDistributeEntity entity){synchronized (obj) {tasks.addFirst(entity);}}public void start(ICallBack callback){if(tasks==null||tasks.isEmpty()||!this.isColse){return;}else{this.isColse = false;}while(true){DataDistributeEntity entity = tasks.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;}}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章