需求:一个简单的后台java程序,收集信息,并将信息发送到远端服务器。

实现:实现一个后台线程,实时处理发送过来的信息,并将信息发送到服务器。

技术要点:

1、单例模式

2、队列

并没有实现全部代码,简单把技术要点写出来:

import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue; /**
* Created by Edward on 2016/6/28.
*/
public class Singleton { private volatile static Singleton singleton = null;
//队列
private BlockingQueue queue = new LinkedBlockingQueue(); private Singleton()
{
} private static Singleton getInstance(){ //double check
if(singleton == null)
synchronized (Singleton.class){
if(singleton == null) {
singleton = new Singleton();
//create a thread
Thread thread = new Thread(new Runnable() {
public void run() {
singleton.getInfo();
}
});
thread.start();
}
}
return singleton;
} public void getInfo() {
String str = null;
while(true) {
try {
//get info from queue
str = this.queue.take().toString();
this.sendMsg(str);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
} //向服务端发送数据
public void sendMsg(String msg){
System.out.println(msg);
} public void putInfo(String string)
{
//put info to queue
getInstance().queue.add(string);
} public static void main(String[] args)
{
for(int i=0; i<100;i++) {
Singleton.getInstance().putInfo("info:" + i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

此程序只是做信息收集,并为后期数据统计做准备,通过单线程队列实现,避免申请过多的资源,影响原有业务的性能。

Sigleton 单例模式 的简单应用的更多相关文章

  1. 设计模式之单例模式的简单demo

    /* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...

  2. 单例模式、简单工厂模式、XML解析

    单例模式: 什么是单例模式? 针对特定问题提出的特定解决方案 为什么使用设计模式? 让程序有更好的可扩展性 在哪里使用? 一般情况下,开发中真正使用设计模式的地方,JVM(虚拟机)底层机制模式 usi ...

  3. 【C++知识点】单例模式的简单实现

    单例模式是最常见,也是使用最广泛的一种设计模式,其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享. 单例模式的实现方法有很多种,本文只给出一个最简单的实现,如下: ...

  4. 【python之路33】开发模式单例模式及简单的服务器请求框架原理

    1.单例模式指的是创建单个实例,例如:数据库连接池中包含10个数据库连接,用户访问数据时随机从连接池中拿出一个进行连接,其他用户再次访问时不再创建对象进行连接 #!usr/bin/env python ...

  5. C++单例模式的简单实现

    c++单例模式的实现(一) 实现方法 1.将构造函数,析构函数私有化,这样保证在类外无法调用类的构造函数创建类的实例,只能通过类内部定义的方法进行创建: 2.在类内定义静态的,指向该类的指针变量ptr ...

  6. QT与DoNet中单例模式的简单实现

    由于使用场景的不同,单例模式的写法也有所区别. 目前接触到的,大多数都是多线程,大量数据处理,还要考虑灵活性,对原有类结构改动最小等因素,所以写法更是多种多样. QT个人较常用的一种写法:(两个文件: ...

  7. 设计模式(五): 简单而又不失其重要性的单例模式(Singleton Pattern)

    上篇博客我们系统的介绍了三种工厂模式,今天我们就来介绍一下单例模式.单例模式虽然简单,但是还是比较重要的,是常用设计模式之一.在之前的博客<Objective-C中的单例模式>中介绍了Ob ...

  8. javascript 模式(2)——单例模式

    单例模式是一种非常极端的模式,它保证了一个类在整个应用程序域中只有一个实体,意味着当你多次创建某一个类的实例的时候它们都是第一次创建的那个. 在Java或c#环境实现单例模式很简单,只需要定义静态变量 ...

  9. 【Java】Java 深入探讨 单例模式的实现

    在GoF的23种设计模式中,单例模式是比较简单的一种.然而,有时候越是简单的东西越容易出现问题.下面就单例设计模式详细的探讨一下.   所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在 ...

随机推荐

  1. ExtJS远程数据-本地分页

    背景 一般情况下,分页展示是前端只负责展示,后台通过SQL语句实现分页查询.当总数据量在千条以下,适合一次性查询出符合条件的所有数据,让前端页面负责分页也是一种选择. 实例 现通过ExtJS 4扩展类 ...

  2. spring中bean配置和bean注入

    1 bean与spring容器的关系 Bean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建立Bean定义注册表,然后根据注册表加载.实例化Bean ...

  3. [英] 推荐 15 个 jQuery 选择框插件

    jQuery Selectbox Plugins let you create beautiful and eye catching select box for your websites inst ...

  4. Android Touch消息传递机制探究分析

    在Android中,消息的传递控制主要是通过两个方法共同配合使用来对用户的触摸消息进行分发的,下面就来看看这两个方法: onInterceptTouchEvent:此方法定义于ViewGroup中,顾 ...

  5. Ubuntu下的杀毒

      Ubuntu 11.04 杀毒软件ESET NOD32   Linux防病毒,并不代表没有病毒,只是数量过少.因技术精英发现漏洞后即时打补丁,病毒很少. 有兴趣的同学可以尝试下Ubuntu 11. ...

  6. JS中的constructor与prototype

    http://www.cnblogs.com/qiantuwuliang/archive/2011/01/08/1930548.html 在学习JS的面向对象过程中,一直对constructor与pr ...

  7. 超实用的JavaScript技巧及最佳实践(下)

    1.使用逻辑符号&&或者||进行条件判断 1 2 3 var foo = 10;  foo == 10 && doSomething(); // is the same ...

  8. 玩转PowerShell第二节——【利用PsExec进行远程调用】-技术&分享

    概述 PowerShell用的最多的地方就是远程调用,在远程机器上执行脚本,监控远程机器的状态,如NLB状态,EventLog,SqlServer DataBase状态等. 本篇将讲到用PsExec. ...

  9. 左倾堆(二)之 C++的实现

    概要 上一章介绍了左倾堆的基本概念,并通过C语言实现了左倾堆.本章是左倾堆的C++实现. 目录1. 左倾堆的介绍2. 左倾堆的图文解析3. 左倾堆的C++实现(完整源码)4. 左倾堆的C++测试程序 ...

  10. HTML5开发手机项目—个人总结

    让网页的宽度自适应屏幕<meta name="viewport" content="width=device-width"/>   1)html上加 ...