并发
文章平均质量分 60
胡姚超
这个作者很懒,什么都没留下…
展开
-
Java线程池中三种方式创建 ThreadFactory 设置线程名称
本文讲一下Java线程池中创建 ThreadFactory 设置线程名称的三种方式。设置线程名称是很重要的,如果你没有设置过,说明你还“涩世”不深,这里面的坑还不曾踩过,而我 在坑里进去然后坑里出来,被坑的那是一个相当的爽啊~为了让不重蹈我的覆辙,为了未来不说起来都是满眼含着“热泪”,还是看下如何设置,顺便也设置设置。文章目录 第一种 CustomizableThreadFactory 第二种 ThreadFactoryBuilder...转载 2021-12-10 18:29:38 · 2638 阅读 · 0 评论 -
sql分组并发查询,java中合并
比如从oracle中查询10万条数据,做业务处理后再更新。查询时可以根据单表的主键做partition,并发读取后,在java中组装。sql:AND MOD(ora_hash(INVENTORY_ID),#{modValue})=#{currentModValue}java:public List<TrInventoryEntity> queryTrInventoryComplex(TrInventoryEntity entity) throws Interrupte.原创 2021-08-14 14:14:05 · 430 阅读 · 0 评论 -
常见的死锁问题分析
IDeadLockService:package com.impl;import com.entity.Student;public interface IDeadLockService { void pickUpSku(String cellNo,String sku,int amout); void checkSku(String cellNo,String sku,int amout); void lockfailed(String cellNo,String .原创 2021-05-21 12:00:01 · 111 阅读 · 0 评论 -
电商抢购高并发JAVA简单实现
假设场景如下:库存20瓶茅台53°。页面发起100万次请求抢购20瓶茅台,用Jmeter测试工具模拟。要求100万次请求全部得到及时响应,抢购到或者抢购不到。单机springboot内嵌tomcat,系统服务正常运行,不宕机。Demo设计思路:1 限流 每秒只放5个请求,其他请求直接返回:本次未抢购到。不走后续业务逻辑。2 缓存 每次用户请求茅台的剩余库存数时,查询jvm缓存中的剩余数量。说白了,上谷歌的guava包做。maven依赖引入<depend..原创 2021-05-16 20:58:24 · 1598 阅读 · 0 评论 -
lock写法
lock的标准写法。lock.lock()在try之前,之所以这么写呢是怕lock.lock时报错,lock.unlock会抛出异常。ReentrantLock lock = new ReentrantLock();lock.lock(); // 加锁try{ // do something}finally{ lock.unlock(); // 解锁}...原创 2021-05-15 23:45:22 · 240 阅读 · 0 评论 -
锁的double-check机制
先举例一个场景。一个货架有10个仓位。每个仓位可以补货,也可以拣货,补货是加库存,拣货是减库存,补货和拣货可以同时发生,比如两个人同时按PDA操作。每个仓位的补货和拣货操作独立。针对货架上每个仓位的补货和拣货,此时务必要关注并发问题,此时有一种思路,悲观锁,用java锁做。当然其他方法也很多,此时不谈。java的悲观锁应该说是单机部署时解决这种问题比较简单的方案。springboot程序。首先定义锁的提供者ILockProvider.class接口:package com.impl;p原创 2021-05-13 21:54:45 · 747 阅读 · 0 评论