Sam哥哥聊技术

互联网技术爱好者

排序:
默认
按更新时间
按访问量

犯了个低级错误:mybatis中在select标签中用了update语句

概述 昨晚想使用类似下面的语句防并发问题: update xxxxx set state= 1 where id = 1 and state= 0 这样万一有线程并发修改state,那么只有一个线程能拿到大于0的影响行数。谁知一调用就报如下错误: attempted to ...

2018-05-19 10:35:25

阅读数:80

评论数:0

能不用事务就尽量别用

概述 以前在公司里,有个牛人对俺说: 事务就是个垃圾,能不用就尽量不用。 当时我刚从传统行业切换到互联网行业,对这个牛人说的这句话是嗤之以鼻的,怎么可能不用事务呢?后来随着开发了多个高并发应用后,才知道这个牛人说的是对的。下面说两个亲身经历的案例来说明这个问题。 库存扣...

2018-03-25 12:25:04

阅读数:1175

评论数:3

利用Apache工具和Guava对ArrayList进行分页

概述之前写过一篇对ArrayList进行分页,介绍如何用JAVA API对ArrayList进行分页,下面再介绍另外两种方法。使用Apache工具使用Apache的ListUtils类,一行代码即可解决。import java.util.Arrays; import java.util.List;...

2017-06-14 15:28:44

阅读数:1108

评论数:2

下载Spring源代码

概述惭愧,工作好几年了,现在才来开始研究Spring的源代码。Spring 源代码路径https://github.com/spring-projects/spring-framework.git直接使用git clone https://github.com/spring-projects/sp...

2017-06-09 10:13:48

阅读数:342

评论数:0

JAVA+信号量:阻塞线程

概述 为了提高接口的响应速度,可以使用ThreadPoolExecutor + Runnable 或者ThreadPoolExecutor 并发调用 技术来并行执行task。但是ThreadPoolExecutor有个特点,就是当core线程不足以应付请求的时候,会将task加入到队列中。一旦使用...

2017-06-05 09:08:21

阅读数:865

评论数:0

ThreadPoolExecutor + Runnable

概述 在ThreadPoolExecutor 并发调用 一文中介绍了ThreadPoolExecutor + Callable的方法并行执行task,其实ThreadPoolExecutor还有另一种用法, ThreadPoolExecutor + Runnable。如果你不理会task执行的结...

2017-06-05 08:31:10

阅读数:825

评论数: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

库存仓库和推荐仓库进行匹配简单算法

概述 通常在电商项目的库存项目中,每条库存记录都有一个对应的仓库字段,warehouse,同一个商品可能在多个仓库中都存在的。假设用户添加一个商品sku1到购物车中,这个sku1在warehouse1和warehouse2都存在,这个时候到底要扣减哪个仓库中的库存呢?这里有个仓库优先级的概念,一般...

2017-03-28 07:20:09

阅读数:1194

评论数:0

多个仓库库存释放-简单算法

概述在做电商项目的时候,会涉及到库存扣减的问题,稍微复杂的情况是,多仓库库存扣减,比如说: 仓库warehouse1有4件商品,warehouse2有3件商品,这个时候用户需要买7件商品,这样无论哪个仓库都不够扣减, 这种情况下,会使用多仓库库存扣减的逻辑,warehouse1和warehou...

2017-03-27 14:39:39

阅读数:1000

评论数:0

多个仓库库存扣减-简单算法

概述在做电商项目的时候,会涉及到库存扣减的问题,稍微复杂的情况是,多仓库库存扣减,比如说: 仓库warehouse1有4件商品,warehouse2有3件商品,这个时候用户需要买7件商品,这样无论哪个仓库都不够扣减, 这种情况下,会使用多仓库库存扣减的逻辑,warehouse1和warehou...

2017-03-27 14:13:20

阅读数:1013

评论数:0

偏向锁-学习

偏向锁介绍。

2017-02-19 12:05:43

阅读数:518

评论数:2

自旋锁-概念

不放弃CPU时间 线程获取不到锁,就会被阻塞挂起,等其他线程释放锁的时候,才被唤醒起来。线程挂起和唤醒是需要转入到内核态完成的,这些操作对系统的并发性能会带来影响。其实有时候线程虽然没法立刻获取到锁,但是也可能很快就会获取到锁。 能不能给多些机会让获取不到锁的线程在CPU里多待上一段时间,尝试...

2017-02-18 22:43:13

阅读数:621

评论数:2

synchronized关键字加锁-线程可重入

synchronized加载加锁-线程可重入

2017-02-16 22:29:41

阅读数:647

评论数:6

JVM调优-学习篇

JVM调优学习。

2017-02-14 21:57:28

阅读数:1837

评论数:0

Future模式学习

Future模式

2017-02-13 23:33:35

阅读数:600

评论数:4

生产者-消费者模式

概述 生产者-消费者模式在系统交互方面,有两个特点: 1、系统解耦 2、解决并发问题下面用几个简单例子逐步说明。 简单例子 假设有两个系统,A系统和B系统,B系统需要依赖A系统产生的数据,也就是说,A系统产生数据后,必须把数据扔给B系统。 这个时候,可以让B系统提供一个方法,比如说提供一...

2017-02-13 14:54:44

阅读数:1366

评论数:0

Mysql 索引知识点

介绍MySql的索引知识点。

2017-02-08 11:54:46

阅读数:969

评论数:2

学习NIO

介绍NIO的知识。

2017-02-06 23:57:54

阅读数:2363

评论数:4

Object wait方法

概述 当线程B访问某个共享资源时,想获取资源的锁对象,发现这个锁已经被线程A拿到了,这个时候,线程B只能被挂起,等待线程A释放锁。但是拿到锁的线程A在执行的过程中,因为某些条件还不满足,暂时不想继续执行下去,想先等待一下(注意:是已经拿到锁的线程A自己想主动等待的),希望等到某个条件满足后,继续执...

2017-02-04 14:54:22

阅读数:2822

评论数:3

ConcurrentHashMap学习

概述 ConcurrentHashMap绝对是经典之作,里面的设计思想可以开拓我们的编程思路。想在高并发多线程环境使用一个Map的话,ConcurrentHashMap是首选,它不只性能高,还是线程安全的。 我们最常使用的HashMap是线程不安全的,可以参考HashMap多线程下发生死...

2017-02-03 01:44:02

阅读数:822

评论数:2

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