java-解决业务操可能数据冲突问题
问题提出,由于业务会出现多人同时操作,或者业务人员反复的操作,因此在业务流程中,需要对业务操作数据进行保护,由于使用数据库锁可能会引起一些难以预料的问题,因此考虑使用内存锁,设计思想:在内存中使用一个静态的链表,即时的对业务操作进行响应,类似于中断机制。在这个过程中需要考虑使用单例。具体看代码:
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-解决业务操可能数据冲突问题的更多相关文章
- Java解决CSRF问题
项目地址: https://github.com/morethink/web-security-csrf CSRF是什么? CSRF(Cross-site request forgery),中文名称: ...
- java 解决Hash(散列)冲突的四种方法--开放定址法(线性探测,二次探测,伪随机探测)、链地址法、再哈希、建立公共溢出区
java 解决Hash(散列)冲突的四种方法--开放定址法(线性探测,二次探测,伪随机探测).链地址法.再哈希.建立公共溢出区 标签: hashmaphashmap冲突解决冲突的方法冲突 2016-0 ...
- JAVA | Java 解决跨域问题
JAVA | Java 解决跨域问题 Table of Contents 引言 什么是跨域(CORS) 什么情况会跨域 解决方案 前端解决方案 后端解决方案 具体方式 一.使用Filter方式进行设置 ...
- Java解决大文件读取的内存问题以及文件流的比较
Java解决大文件读取的内存问题以及文件流的比较 传统方式 读取文件的方式一般是是从内存中读取,官方提供了几种方式,如BufferedReader, 以及InputStream 系列的,也有封装好的如 ...
- Java轻量级业务层框架Spring两大核心IOC和AOP原理
IoC(Inversion of Control): IOC的基本概念是:不创建对象,但是描述创建它们的方式.在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务.容器负责将这些 ...
- IBM Thread and Monitor Dump Analyzer for Java解决生产环境中的性能问题
这个工具的使用和 HeapAnalyzer 一样,非常容易,同样提供了详细的 readme 文档,这里也简单举例如下: #/usr/java50/bin/java -Xmx1000m -jar jca ...
- Java解决高并发方案(帮助你我他)
一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很简单.随着互联网业务的不断丰富,网站 ...
- java解决高并发问题
对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题, 但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研 ...
- java 解决中文乱码
//1.代码解决 public class LuanMa { public static String getNewString(String luanma){ String result = &qu ...
随机推荐
- linux操作系统flash player问题--ubuntu
adobe公司停止了对linux系统的flash player的更新,这导致很多网页视频不能够通过浏览器观看,很是不爽! 还好,给用户留下了一点点希望,那便是chrome浏览器. 谷歌浏览器,有一款插 ...
- 7.4---加法替代运算(CC150)
注意:1,除法那里b+=b是错的.b一直在改变. 2,仔细一点. import java.util.*; public class AddSubstitution { public int cal ...
- python之路一
Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...
- ubuntu add application to launcher
eg. add sublime text to launcher so as to be found by launcher, docky, etc. add a file sudo gedit /u ...
- java面试宝典(蓝桥学院)
Java面试宝典(蓝桥学院) 回答技巧 这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的学生在笔试/面试时更好地赢得好的结果.由于这套试题涉及的范围 ...
- 【GoLang】tcmalloc && jemalloc
https://www.douban.com/note/512625720/ http://blog.csdn.net/hanxin1987216/article/details/8156010 ht ...
- Redis Sentinel机制与用法(一)
Sentinel spring 集群配置: 概述 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕 ...
- HTTP 格式
HTTP请求报文和HTTP响应报文 HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的.HTTP有两类报文:请求报文和响应报文. HTTP请求报文 一个HTT ...
- 实验二 PHP基本语法实验
实验二 PHP基本语法实验 0 实验准备 0.1实验环境和相关工具软件 具体到的机房环境,请在Windowsxp环境下做本实验: l 操作系统:Windowsxp l Web服务器:Apache ...
- markdown 基本语法
代码块: ```console.log(1);```--- 标题: # h1## h2### h3 --- 粗斜体: *斜体***粗体*****粗斜体*** --- 强调:`强调` --- 链接:[百 ...