Java
文章平均质量分 58
yelrihsss
很菜,所以都在看基础。
展开
-
一文看分布式锁
为什么会存在分布式锁?经典场景-扣库存,多人去同时购买一件商品,首先会查询判断是否有剩余,如果有进行购买并扣减库存,没有提示库存不足。假如现在仅存有一件商品,3人同时购买,三个线程同时执行方法,第一人通过了库存>0的校验,此时线程阻塞,第二人通过校验后抢先购买,此时库存已经为0,第一人继续执行扣减,库存就为-1,也就是【超卖】。原创 2023-11-18 02:11:19 · 346 阅读 · 0 评论 -
多线程优化大量数据如何事务回滚
于是使用多线程去处理,可能出现的问题是,如果一个线程出现失败,那么应该返回响应处理失败,已插入就绪的线程任务需要回滚,但是每个线程执行的是自己的事务,那么该如何处理呢。4w单的EXECL表格,导入到订单表,校验数据后落库,响应速度超过2min,大约在8min左右,这是单线程的情况下,在使用批量插入后,仍超时2min。:spring中对数据库连接是放在threadLocal里面,多线程场景下,拿到的数据库连接是不一样的,即是属于不同事务。将大批量的数据,分为多个集合,每个线程处理一个。原创 2023-11-16 17:12:52 · 1132 阅读 · 0 评论 -
Integer、Long包装类的比较==/equals
@Testvoid test() { Long i = Long.valueOf(-1); Long j = Long.valueOf(1); Long k = 1L; Long m = 100L; Long u = 200L; System.out.println(i==-1); System.out.println(i.equals...原创 2023-06-21 10:36:00 · 186 阅读 · 0 评论 -
list - 删除元素 ConcurrentModificationException
前天看了公众号,说是三年开发都不会删除元素,看了一眼,没想到第二天就用上了........而我也是那个菜鸟哈哈哈哈哈哈.........记录一下吧public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("1"); list.a...原创 2023-05-24 13:23:00 · 73 阅读 · 0 评论 -
StringBuffer 和 StringBuilder的区别
1、线程安全性:StringBuffer 是线程安全的,而 StringBuilder 不是。如果在多线程环境下使用 StringBuilder,可能会发生竞态条件等并发问题。StringBuffer 和 StringBuilder 都继承于 AbstractStringBuilder类:字符串的append方法调用的是AbstractStringBuillder的append方法,逻辑...原创 2023-05-24 09:36:00 · 224 阅读 · 0 评论