Sam哥哥聊技术

互联网技术爱好者

利用ConcurrentHashMap和计数器实现锁

概述 在某些场景下,我们想让线程根据某些业务数据进行排队,简单代码如下: import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; imp...

2017-05-27 13:51:11

阅读数:949

评论数:0

ThreadPoolExecutor 并发调用

概述 通常为了提供任务的处理速度,会使用一些并发模型,ThreadPoolExecutor中的invokeAll便是一种。 代码 package test.current;import java.util.ArrayList; import java.util.Arrays; import j...

2017-05-05 21:22:45

阅读数:1154

评论数:0

系统防刷的一些基本方法

概述 上周系统被刷了,由于系统是纯db操作,没有缓存的,所以db的压力非常大,后续的请求已经无法拿到db连接了。虽然系统用几十个数据库分库,但是黑客就只是刷一个商品,这样所有的请求就会落到同一个DB。 当时刚好我是值班人员,全程参与了整个过程。系统被刷了应该如何处理以及系统如何做防...

2017-05-05 21:13:24

阅读数:2842

评论数:3

请求量稍微比较大-尽量避免长事务

概述 某些后台应用经常需要频繁的操作DB,为了保证数据出错时能回滚数据,通常都会使用事务。在使用事务的时候,尽量避免使用长事务,比如说:某个业务操作需要批量插入数据,而且数据量还不少,如果这整个操作都包在一个事务里面,只有等到数据操作完了,DB连接才会被释放,一旦外部系统发起请求,并发调用这个操作...

2017-05-05 20:47:33

阅读数:1739

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭