文档章节

单模块中ReentrantLock的使用

亚林瓜子
 亚林瓜子
发布于 09/25 11:50
字数 191
阅读 6
收藏 2

背景

在单模块应用中,对同一个请求,需要进行同步。注意ReentrantLock的使用场景:

  • 同一个线程中
  • 同一个请求

RestController

@RestController
public class Controller {
	private final ReentrantLock lock = new ReentrantLock();
	...
	@PostMapping
 	public User add(User user){
 		lock.lock();
		try{
		  ...
		} finally{
		  lock.unlock();
		}

	  }
	...
}

后续

注意,这里使用场景,必须是在同一线程,同一个请求,才能够使用ReentrantLock。如果以后有机会,再尝试一下redis+spring boot来实现分布式锁。

参考

幂等性和高并发在电商系统中的使用

Guide to java.util.concurrent.Locks

© 著作权归作者所有

共有 人打赏支持
亚林瓜子

亚林瓜子

粉丝 19
博文 148
码字总数 48594
作品 0
长沙
高级程序员
这里有一份面经,请查收(七)

本文作者:伯乐在线 -朱小厮 。未经作者许可,禁止转载! 欢迎加入伯乐在线专栏作者。 本篇所要介绍的是一家互联网企业,简称MD好了。一面是电面,二三面是face2face的技术面,4面是HR面。 ...

伯乐在线
2016/09/04
0
0
并发编程-锁的发展和主流分布式锁比较总结

一、锁的发展 系统结构由传统的“单应用服务--》SOA --》微服务 --》无服务器” 的演进过程中,场景越来越复杂,由单体应用的但进程中多线程并发的内存锁,随着互联网场景越来越复杂,在复杂...

贾浩v
2017/10/24
0
0
第四章-java多线程核心技术-Lock锁-第一篇

lock锁的使用 ReentrantLock锁的使用 在JDK5.0版本之前,重入锁的性能远远好于synchronized关键字,JDK6.0版本之后synchronized 得到了大量的优化,二者性能也不分伯仲,但是重入锁是可以完全...

简心
09/05
0
0
Java多线程三(线程安全的集合及java.util.concurrent包的锁)

一、线程安全的集合 JDK1.5之前,可以使用Venctor和Hashtable,也可以由java.util.Collections来创建线程安全的集合,如:Connections.synchronizedSet(Set<T>); Connections.synchronizedLi......

dkz
2013/03/24
0
0
logback 1.1.10 发布,Java 日志框架

logback 1.1.10 发布了。logback 是由 log4j 创始人设计的又一个开源日志组件。logback 当前分成三个模块:logback-core、logback- classic 和 logback-access。logback-core 是其它两个模块...

王练
2017/02/06
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

Spring中static变量不能@value注入的原因

今天本想使用@Value的方式使类中的变量获得yml文件中的配置值,然而一直失败,获得的一直为null。 类似于这样写的。 public class RedisShardedPool { private static ShardedJedisPool pool...

钟然千落
今天
2
0
CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
38
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部