Java 如果遇到会出现高并发的情况,一般建议使用悲观锁 :synchronized (member){代码块}  需要对数据库进行修改或新增的时候,建议写上事务--@Transactional

@Transactional

public Map<String, Object> saveCode(Member member, SessionRecord sr) {

// TODO Auto-generated method stub

log.getLogger("dbeleven2020_s").info("saveCode-response params1:({}),params2:({})", member, sr);

Map<String, Object> resp = new HashMap<String, Object>();

Map<String, Object> codeMap = new HashMap<String, Object>();

synchronized (member) {

codeMap.put("accountId", member.getAccountId());

// 这里要判断一下,该会员,是否有过sharecode

String hasCode = "";

String code = "";

hasCode = doubleEleven2020Mapper.selectIsHadCode(codeMap);

if (StringUtils.isEmpty(hasCode)) {

code = shareCodeService.generateShareCode(16);

codeMap.put("shareCode", code);

if (doubleEleven2020Mapper.addCode(codeMap) == 1) {

log.getLogger("dbeleven2020_s").info("addCode-response params1:({}),params2:({})", codeMap, true);

resp.put("shareCode", code);

}

}

else {

resp.put("shareCode", hasCode);

}

resp.put("status", true);

}

return resp;

}

Java 悲观锁 synchronized (member){代码块}的更多相关文章

  1. [java多线程] - 锁机制&同步代码块&信号量

    在美眉图片下载demo中,我们可以看到多个线程在公用一些变量,这个时候难免会发生冲突.冲突并不可怕,可怕的是当多线程的情况下,你没法控制冲突.按照我的理解在java中实现同步的方式分为三种,分别是:同 ...

  2. java中的synchronized同步代码块和同步方法的区别

    下面这两段代码有什么区别? //下列两个方法有什么区别 public synchronized void method1(){} public void method2(){ synchronized ...

  3. java 多线程9 : synchronized锁机制 之 代码块锁

    synchronized同步代码块 用关键字synchronized声明方法在某些情况下是有弊端的,比如A线程调用同步方法执行一个较长时间的任务,那么B线程必须等待比较长的时间.这种情况下可以尝试使用 ...

  4. synchronized锁机制 之 代码块锁(转)

    synchronized同步代码块 用关键字synchronized声明方法在某些情况下是有弊端的,比如A线程调用同步方法执行一个较长时间的任务,那么B线程必须等待比较长的时间.这种情况下可以尝试使用 ...

  5. synchronized同步代码块锁释放

    今天发现自己写的线上程序出现数据库不能同步的问题,查看日志已经停止记录,随后使用jstack查看线程的运行状况,发现有个同步线程锁住了. 以下是jstack -l 637  问题线程的内容. &quo ...

  6. 59、synchronized同步代码块

    synchronized同步方法的问题 有些情况下,在方法上面加synchronized同步,会有性能问题.请看下面代码,来计算下两个线程执行的耗时: package com.sutaoyu.Thre ...

  7. [转]Java 对象锁-synchronized()与线程的状态与生命周期

      线程的状态与生命周期 Java 对象锁-synchronized() ? 1 2 3 4 synchronized(someObject){   //对象锁 } 对象锁的使用说明: 1.对象锁的返 ...

  8. java 多线程: Thread 并发访问-代码块同步synchronized {};String作为被锁的对象

    方法同步的弊端 方法同步的时候,如果一个方法需要线程安全控制的代码速度其实很快,但是还有其他的业务逻辑代码耗时非常长(比如网络请求),这样所有的线程就在这一块就等待着了,这样造成了极大的资源浪费如果并 ...

  9. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

随机推荐

  1. LuoGu P1909 买铅笔???

    题目描述 P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物.她发现商店一共有 3种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同.为了公平起 见,P老师决定只买同一种包装的铅笔. ...

  2. python 中简单的输出语句

    1 python 中简单的输出语句 #coding:utf-8#输出的是整数,得到的也是整数,用raw_inputusername=raw_input('请输入用户名:')#输出的是整数或者字符串,得 ...

  3. PHP基础之面向对象篇

    前言 前面写的都是运算符.流程控制.排序查找等,下面说一说面向对象的一些内容.这是前面写的,有兴趣可以去看一看. PHP入门之类型与运算符 PHP入门之流程控制 PHP入门之函数 PHP入门之数组 P ...

  4. EAM资产管理系统应用趋势简述

    EAM资产管理系统应用趋势简述 随着各种企业对资产管理需求的不断增长,EAM市场也正在持续升温,对于石油.化工.煤炭.钢铁等流程化企业及其他资产密集型企业来说,设备占用了企业大量的成本,如何降低设备维 ...

  5. .netcore+vue 实现压缩文件下载

    一.前言 目前接触的项目中,给定的需求是将系统内所有用户的数据整理好,并保存到文件夹内,目的主要是防止用户在实施人员已配置好的基础上由于不熟悉系统,导致的误删或者误操作.减少实施人员的配置工作.我首先 ...

  6. Powershell编程基础-001-基本语法

    变量的定义:$a="abc"         变量的引用也是echo $a 注释: 1.单行注释:单行注释是在每行的开头键入井号#的注释. #符号右边的所有内容都将被忽略,也可以在 ...

  7. 吴恩达Machine Learning学习笔记(三)--逻辑回归+正则化

    分类任务 原始方法:通过将线性回归的输出映射到0-1,设定阈值来实现分类任务 改进方法:原始方法的效果在实际应用中表现不好,因为分类任务通常不是线性函数,因此提出了逻辑回归 逻辑回归 假设表示--引入 ...

  8. 安装Ubuntu虚拟机

    centos已经满足不了我了,这里就装了个虚拟机,等有钱了再单配台单系统的Linux主机. 一.下载Ubuntu的ISO文件 用国内的网易镜像站点 进去点个16.04.6,然后下个64位的.iso就好 ...

  9. [视频]iNeuOS 自主可控工业互联网一体化解决方案 整体介绍

    演示地址:http://demo.ineuos.net  (注:自己注册) iNeuOS 自主可控工业互联网操作系统,提供全新解决方案 核心组件包括:边缘网关(iNeuLink).设备容器(iNeuK ...

  10. 学习篇:NodeJS中的模板引擎:jade

    NodeJS 模板引擎作用:生成页面 在node常用的模板引擎一般是 1.jade --破坏式的.侵入式.强依赖(对原有的html体系不友好,走自己的一套体系)2.ejs --温和的.非侵入式的.弱依 ...