问题提出,由于业务会出现多人同时操作,或者业务人员反复的操作,因此在业务流程中,需要对业务操作数据进行保护,由于使用数据库锁可能会引起一些难以预料的问题,因此考虑使用内存锁,设计思想:在内存中使用一个静态的链表,即时的对业务操作进行响应,类似于中断机制。在这个过程中需要考虑使用单例。具体看代码:

 import java.util.LinkedList;

 /**
*
* Description:<p></p>
* @author: JanneLeMac@gmail.com
* @version: 2013-9-14 下午10:14:47
*/
public class SendHelper {
private static LinkedList<String> sendItem=null;
private static volatile SendHelper M_INSTANCE = null;
/**
* Description: <p>use private make sure the SendHelper is unique. </p>
*/
private SendHelper(){}; public static SendHelper getInstance(){
if(null == M_INSTANCE){//if null
synchronized (SendHelper.class) {//if more than two threads run into the first null check same time
//to avoid instanced more than one time, it needs to be checked again.
if(null == M_INSTANCE){
M_INSTANCE = new SendHelper();
sendItem=new LinkedList<String>();
}
}
}
return M_INSTANCE;
}
public LinkedList<String> getSendItem() {
return sendItem;
}
public void setSendItem(LinkedList<String> sendItem) {
SendHelper.sendItem = sendItem;
}
public void addItem(String LSH){
sendItem.addLast(LSH);
}
public void removeItem(String LSH){
sendItem.remove(LSH);
} public static void main(String []args){
System.out.println("---------test beagin-----------");
//LinkedList<String> l = new LinkedList<String>();
//SendHelper.getInstance().setSendItem(l);
SendHelper.getInstance().addItem("1");
SendHelper.getInstance().addItem("2");
SendHelper.getInstance().addItem("3");
SendHelper.getInstance().addItem("4");
for(int i=0;i<SendHelper.getInstance().getSendItem().size();i++){
System.out.println(SendHelper.getInstance().getSendItem().get(i));
if("2".equals(SendHelper.getInstance().getSendItem().get(i))){
SendHelper.getInstance().removeItem("4");
}
}
System.out.println("size:"+SendHelper.getInstance().getSendItem().size());
System.out.println("---------test end-----------");
} //1.业务判断,有锁,返回提示信息
//2.加锁
//3.业务操作
//4.移除锁
}

问题解决,具体使用还得看业务系统的使用,思路就这样了,还得看系统的运行情况^_^。

java-解决业务操可能数据冲突问题的更多相关文章

  1. Java解决CSRF问题

    项目地址: https://github.com/morethink/web-security-csrf CSRF是什么? CSRF(Cross-site request forgery),中文名称: ...

  2. java 解决Hash(散列)冲突的四种方法--开放定址法(线性探测,二次探测,伪随机探测)、链地址法、再哈希、建立公共溢出区

    java 解决Hash(散列)冲突的四种方法--开放定址法(线性探测,二次探测,伪随机探测).链地址法.再哈希.建立公共溢出区 标签: hashmaphashmap冲突解决冲突的方法冲突 2016-0 ...

  3. JAVA | Java 解决跨域问题

    JAVA | Java 解决跨域问题 Table of Contents 引言 什么是跨域(CORS) 什么情况会跨域 解决方案 前端解决方案 后端解决方案 具体方式 一.使用Filter方式进行设置 ...

  4. Java解决大文件读取的内存问题以及文件流的比较

    Java解决大文件读取的内存问题以及文件流的比较 传统方式 读取文件的方式一般是是从内存中读取,官方提供了几种方式,如BufferedReader, 以及InputStream 系列的,也有封装好的如 ...

  5. Java轻量级业务层框架Spring两大核心IOC和AOP原理

    IoC(Inversion of Control): IOC的基本概念是:不创建对象,但是描述创建它们的方式.在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务.容器负责将这些 ...

  6. IBM Thread and Monitor Dump Analyzer for Java解决生产环境中的性能问题

    这个工具的使用和 HeapAnalyzer 一样,非常容易,同样提供了详细的 readme 文档,这里也简单举例如下: #/usr/java50/bin/java -Xmx1000m -jar jca ...

  7. Java解决高并发方案(帮助你我他)

           一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很简单.随着互联网业务的不断丰富,网站 ...

  8. java解决高并发问题

    对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题, 但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研 ...

  9. java 解决中文乱码

    //1.代码解决 public class LuanMa { public static String getNewString(String luanma){ String result = &qu ...

随机推荐

  1. 2 GPS utility methods

    Methond 1 is to check whether the GPS is on: 1 2 3 4 5 public boolean isGPSIsOn() { LocationManager ...

  2. django xadmin多个model的数据渲染在统一个template中

    adminx.py demo class ModelAdmin(object): #.... def get_context(self): context = super(SimCardService ...

  3. 【POI】修改Excel内容

    package com.what21.test; import java.io.File; import java.io.FileInputStream; import java.io.FileNot ...

  4. c里面的fflush函数

    NAME fflush - flush a stream SYNOPSIS #include <stdio.h> int fflush(FILE *stream); DESCRIPTION ...

  5. jenkins结合ansible用shell实现自动化部署和回滚

    最近用jenkins+gitlab+ansible做持续化集成,自动化部署和版本回滚.然而deploy plugin没能做到增量升级和回滚操作,折腾了很久决定自己写个脚本来简单实现. 环境: cent ...

  6. svn上传报Authorization failed错误解决办法

    svn上传文件时没有弹出用户登录界面,而是直接报Authorization failed错误.出现该问题基本都是三个配置文件的问题,下面把这个文件列出来 svnserve.conf配置文件中的 [ge ...

  7. ios 使用autolayout 后button 的frame 无法设置问题!

    问题见这里,只能通过bounds和center进行设置!http://www.cocoachina.com/bbs/read.php?tid-236862.html 待研究!!!!~~~

  8. suse11 sp2 搭建openvpn

    什么是VPN IP机制仿真出一个私有的广域网"是通过私有的隧道技术在公共数据网络上仿真一条点到点的专线技术.所谓虚拟,是指用户不再需要拥有实际的长途数据线路,而是使用Internet公众数据 ...

  9. 1616 最小集合 51NOD(辗转相处求最大公约数+STL)

    1616 最小集合 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 A君有一个集合. 这个集合有个神奇的性质. 若X,Y属于该集合,那么X与Y的最大 ...

  10. 【leetcode】Combinations (middle)

    Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For exampl ...