模拟打印机排队打印效果

 更新时间:2014年07月31日 09:54:10   投稿:whsnow  
本节主要介绍了模拟打印机排队打印效果的具体实现,感兴趣的朋友可以参考下
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;
}
}

相关文章

  • SpringBoot使用@Slf4j注解实现日志输出的示例代码

    SpringBoot使用@Slf4j注解实现日志输出的示例代码

    @Slf4j 是 Lombok 库中的一个注解,它极大地简化了日志记录的代码,通过使用这个注解,Lombok 会自动在你的类中注入一个静态的日志对象,本文给大家介绍了SpringBoot使用@Slf4j注解实现日志输出的方法,需要的朋友可以参考下
    2024-10-10
  • jenkins配置详细指南(附jdk多个版本配置)

    jenkins配置详细指南(附jdk多个版本配置)

    Jenkins是一款CICD(持续集成与持续交付)工具,Jenkins可以帮你在写完代码后,一键完成开发过程中的一系列自动化部署的工作,这篇文章主要给大家介绍了关于jenkins配置的相关资料,文中还附jdk多个版本配置指南,需要的朋友可以参考下
    2024-02-02
  • spring循环依赖策略解析

    spring循环依赖策略解析

    这篇文章主要为大家详细介绍了spring循环依赖策略,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • MyEclipse安装JS代码提示的教程(Spket插件)

    MyEclipse安装JS代码提示的教程(Spket插件)

    本篇文章主要介绍了MyEclipse安装JS代码提示的教程(Spket插件),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • SpringBoot中集成screw(螺丝钉)实现数据库表结构文档生成方法

    SpringBoot中集成screw(螺丝钉)实现数据库表结构文档生成方法

    这篇文章主要介绍了SpringBoot中集成screw(螺丝钉)实现数据库表结构文档生成,下面以连接mysql数据库并生成html格式的数据库结构文档为例,插件的使用方式除可以使用代码外,还可以使用Maven插件的方式,需要的朋友可以参考下
    2024-07-07
  • Java 并发编程中如何创建线程

    Java 并发编程中如何创建线程

    这篇文章主要介绍了Java 并发编程中如何创建线程,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-03-03
  • SpringBoot详解如何实现读写分离

    SpringBoot详解如何实现读写分离

    当响应的瓶颈在数据库的时候,就要考虑数据库的读写分离,当然还可以分库分表,那是单表数据量特别大,当单表数据量不是特别大,但是请求量比较大的时候,就要考虑读写分离了.具体的话,还是要看自己的业务...如果还是很慢,那就要分库分表了...我们这篇就简单讲一下读写分离
    2022-05-05
  • 解决JSTL foEach标签 刷新报错的方法

    解决JSTL foEach标签 刷新报错的方法

    本篇文章是对JSTL foEach标签刷新报错的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 一分钟了解Java中List集合与set集合的多种遍历方式

    一分钟了解Java中List集合与set集合的多种遍历方式

    这篇文章主要介绍了一分钟了解Java中List集合与set集合的多种遍历方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • java数字转汉字工具类详解

    java数字转汉字工具类详解

    这篇文章主要为大家详细介绍了java数字转汉字工具类的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04

最新评论