模拟打印机排队打印效果

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;
}
}
(0)

相关推荐

  • Java实现排队论的原理

    引入: 前段时间去银行办业务,排队的人那是真多,自己正式办理业务也就不到5分钟,但是却足足等了两个小时(相信很多人都遇到过这种情况),对这种服务水平真的是无语了,但是问题又来了,银行应该开几个窗口,既能保证整体的服务质量,又能保证资源资源的利用率呢?下面我们就通过排队论来模拟这个问题. 排队论简介 排队论是研究系统随机聚散现象和随机系统工作工程的数学理论和方法,又称随机服务系统理论,为运筹学的一个分支.我们下面对排队论做下简化处理,先看下图: 我们在图的左侧安排若干个蓝色服务台,右侧为可能会过来

  • php+ajax实现带进度条的大数据排队导出思路以及源码

    废话不多说,先上效果图: 点击导出,实现 点击导出 统计完成之后 点击确定 下面来谈谈实现的思路: 前面导出操作简单,从第二个导出操作开始: 点击"确定"调用exportCsv函数 复制代码 代码如下: <a class="on" href="javascript:exportCsv();"><em>导出</em></a> exportCvs函数如下function exportCsv(){ //清

  • 模拟打印机排队打印效果

    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<DataDistrib

  • JavaScript实现简单的文本逐字打印效果示例

    本文实例讲述了JavaScript实现简单的文本逐字打印效果.分享给大家供大家参考,具体如下: 先来看看运行效果: 具体代码如下: <!DOCTYPE> <html> <head> <title>www.jb51.net js打字效果</title> <meta charset="utf-8"> </head> <style type="text/css"> div {

  • python连接打印机实现打印文档、图片、pdf文件等功能

    引言 python连接打印机进行打印,可能根据需求的不同,使用不同的函数模块. 如果你只是简单的想打印文档,比如office文档,你可以使用ShellExecute方法,对于微软office的文档.pdf.txt等有用,你可以尝试下: 如果你输入某些数据,文字信息,就想直接把它发送给打印机打印,那么可以尝试使用win32print: 如果你有一张图片,那么你可以结合python的Python Imaging Library(PIL)和win32ui模块进行打印: 普通打印 ShellExecut

  • 打印机无法打印的故障处理

    "无法打印"大多是由于打印机使用.安装.设置不当造成的,病毒.打印机损坏.打印机端口有故障也会导致打印机无法打印.如果打印机在 Windows 9x中无法打印,可按如下步骤检查处理: 1.首先检查打印机是否处于联机状态,在大多数打印机上,"OnLine"按钮旁边都有一个指示联机状态的小灯,正常情况该联机指示灯应处于常亮状态.如果该指示灯不亮或处于闪烁状态,说明联机不正常.请检查打印机电源是否接通.打印机电源开关是否打开.打印机电缆是否正确连接等. 2.如果联机指示灯

  • jQuery模拟新浪微博首页滚动效果的方法

    本文实例讲述了jQuery模拟新浪微博首页滚动效果的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xh

  • php模拟服务器实现autoindex效果的方法

    本文实例讲述了php模拟服务器实现autoindex效果的方法.分享给大家供大家参考.具体实现方法如下: 1.PHP代码如下: 复制代码 代码如下: <?php //文件浏览程序 error_reporting(0); $pwd = empty($_GET['dir']) ? './' : $_GET['dir']; $pwd = realpath($pwd); if(is_file($pwd)) {     highlight_file ($pwd);     exit; }else    

  • Java局部打印效果不同问题解决方案

    项目中遇到了做局部打印的情况,最开始用的bootstrap,可是实际显示的和打印的效果就不一样了,于是就只能换一种方式了. 打印是用的jqprint 这个插件,很简单好用的插件. 引入两个js就可以了 <script type="text/javascript" src="/js/appjs/common/print/jquery-1.4.4.min.js"></script> <script type="text/javas

  • 利用原生js模拟直播弹幕滚动效果

    目录 1.基本原理 2.具体代码 总结 1.基本原理 首先将直播区域分成十份(我个人自己为了便于计算分成十份),将输入的内容随机放到分成的十份区域中,插入到十份区域右边的视图之外,然后调用动画,按照随机的速度从右向左移动,当移动到左侧区域视图之外移除此滚动元素. 2.具体代码 <div class="move_video_content"> <div class="video_content"> <div class="vid

  • C#调用打印机实现打印

    一.引用BarcodeStandard.dll #region BarcodeStandard.dll /* * * 使用说明 需要通过NuGet进行安装BarcodeLib.dll,必不可少 */ string inputString; /// <summary> /// 获取所以打印机驱动名称 /// </summary> private void getPrintDocumentlist() { PrintDocument print = new PrintDocument(

  • VC++实现模拟汉诺塔效果

    先上效果图 再附上源代码: 汉诺塔: 复制代码 代码如下: #include "stdio.h" #include "math.h" int arrA[15], arrB[15], arrC[15];   // 分别为A.B.C int length; int lenA, lenB, lenC; char plate[32]; // Make void makeplate(int n) {     int i;     if (n == length + 1)   

随机推荐