摘要: 上一个随笔中的代码压测很低,因为都是对数据库操作,数据库支持的并发数量不高,可以选用redis作为数据库 1.举个例子,每次查询库存数量的时候,可以从redis里面查询对应的商品剩余数量,然后对redis的数据进行减库存 2.如果数据库没有生成订单抛出异常,可以在抛异常的地方把redis的库存数据进 阅读全文
posted @ 2020-03-29 23:55 思远99 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 简单的秒杀场景代码可以用以下实现 1.接口实现类加事务注解 2.用户保存订单 3.减库存,但是sql中update语句中加where条件(库存大于减的数量时才执行),如果没有执行,返回0,做if判断,如果小于等于0时抛异常,这样就会回滚,订单记录也会删除,前台提示用户库存不足 阅读全文
posted @ 2020-03-29 20:54 思远99 阅读(122) 评论(0) 推荐(0) 编辑
摘要: volatile和synchronize的区别 1.volatile不能保证原子性,只能修饰参数可见性,synchronize可以保证线程安全 2.volatile只能修饰参数,不能修饰方法,synchronize只能修饰方法 3.当对同一个参数进行多个线程时,可以使用volatile修饰,因为参数 阅读全文
posted @ 2020-03-29 20:46 思远99 阅读(95) 评论(0) 推荐(0) 编辑