
并发
琅琊山二当家
这个作者很懒,什么都没留下…
展开
-
java并行的执行两个任务
java并行的执行两个任务 ,每个任务又包含多个小任务,下面是一种代码实践的成果 ExecutorService executor1 = Executors.newSingleThreadExecutor(); Map<String, Integer> tenantIdNumMap = new HashMap<>(); FutureTask<Map<String, Integer>> future1 =原创 2021-07-23 18:07:52 · 1424 阅读 · 1 评论 -
CompletableFuture parallelStream并行流使用的一个注意事项
并行流 就是多线程 使用的威力大,出问题的概率也大,使用时候要谨慎,一旦出问题,相对来说不好排查错误这里就说一个遇到的问题: 不要再每个并行流分别计算,这个流处理需要的公共变量,可以在外部计算好,传进去。修改前:上图函数具体实现修改后:类似的一个修改最后给出具体获取List<String> catServiceNa...原创 2019-06-26 15:47:14 · 1311 阅读 · 0 评论 -
Golang适合高并发场景的原理
转载:典型的两个现实案例:我们先看两个用Go做消息推送的案例实际处理能力360消息推送的数据:16台机器,标配:24个硬件线程,64GB内存Linux Kernel 2.6.32 x86_64单机80万并发连接,load 0.2~0.4,CPU 总使用率 7%~10%,内存占用20GB (res)目前接入的产品约1280万在线用户2分钟一次GC,停顿2秒 (...转载 2019-04-09 11:36:57 · 423 阅读 · 0 评论 -
千万级并发实现的秘密:内核不是解决方案,而是问题所在!
转载:https://www.youkuaiyun.com/article/2013-05-16/2815317-The-Secret-to-10M-Concurrent-Connections摘要:C10K问题让我们意识到:当并发连接达到10K时,选择不同的解决方案,笔记本性能可能会超过16核服务器。对于C10K问题,我们或绕过,或克服;然而随着并发逐渐增多,在这个后10K的时代里,你是否有想过如何去克...转载 2019-04-09 10:31:04 · 421 阅读 · 0 评论 -
java lock await方法会释放掉当前锁 标准的生产者消费者问题
In all cases, before this method can return the current thread must re-acquire the lock associated with this condition. When the thread returns it isguaranteedto hold this lock. 会释放,其他线程执行...原创 2017-11-29 16:17:28 · 4433 阅读 · 1 评论 -
后端接口的幂等性
在微服务架构下,我们在完成一个订单流程时经常遇到下面的场景:一个订单创建接口,第一次调用超时了,然后调用方重试了一次在订单创建时,我们需要去扣减库存,这时接口发生了超时,调用方重试了一次当这笔订单开始支付,在支付请求发出之后,在服务端发生了扣钱操作,接口响应超时了,调用方重试了一次一个订单状态更新接口,调用方连续发送了两个消息,一个是已创建,一个是已付款。但是你先接收到已付款,然后又接转载 2017-09-11 13:12:59 · 628 阅读 · 0 评论 -
如何解决秒杀的性能问题和超卖的讨论
最近业务试水电商,接了一个秒杀的活。之前经常看到淘宝的同行们讨论秒杀,讨论电商,这次终于轮到我们自己理论结合实际一次了。 ps:进入正文前先说一点个人感受,之前看淘宝的ppt感觉都懂了,等到自己出解决方案的时候发现还是有很多想不到的地方其实都没懂,再次验证了“细节是魔鬼”的理论。并且一个人的能力有限,只有大家一起讨论才能想的更周全,更细致。好了,闲话少说,下面进入正文。转载 2017-08-19 15:32:11 · 580 阅读 · 0 评论 -
乐视秒杀:每秒十万笔交易的数据架构解读
摘要: 挺不错的数据库分库分表文章,通俗易懂,转载备忘,如有侵权请告知随 着乐视硬件抢购的不断升级,乐视集团支付面临的请求压力百倍乃至千倍的暴增。作为商品购买的最后一环,保证用户快速稳定地完成支付尤为重要。所以在 2015年11月,我们对整个支付系统进行了全面的架构升级,使之具备了每秒稳定处理10万订单的能力。为乐视生态各种形式的抢购秒杀活动提供了强有力的 支撑。一. 分库分表转载 2017-08-19 15:15:41 · 1104 阅读 · 0 评论 -
秒杀设计方案讨论
http://download.youkuaiyun.com/detail/u012319979/9210697一、秒杀带来了什么? 秒杀或抢购活动一般会经过【预约】【抢订单】【支付】这3个大环节,而其中【抢订单】这个环节是最考验业务提供方的抗压能力的。抢订单环节一般会带来2个问题: 1、高并发 比较火热的秒杀在线人数都是10w起的转载 2016-09-23 18:15:37 · 568 阅读 · 0 评论 -
Lock ReentrantLock tryLock condtion 用法
ReentrantLock 可重入锁指的是 同一个线程可多次获取同一把锁 package test.BingFa;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;import java....原创 2016-09-02 12:19:07 · 2239 阅读 · 0 评论 -
Java并发编程实践笔记
1, 保证线程安全的三种方法: a, 不要跨线程访问共享变量b, 使共享变量是final类型的c, 将共享变量的操作加上同步 2, 一开始就将类设计成线程安全的, 比在后期重新修复它,更容易. 3, 编写多线程程序, 首先保证它是正确的, 其次再考虑性能. 4, 无状态或只读对象永远是线程安全的. 5, 不要将一个共享变量裸露在多线程环境下(无同步或不可变性转载 2016-04-24 23:38:05 · 1010 阅读 · 0 评论 -
《深入浅出 Java Concurrency》目录
这是一份完整的Java 并发整理笔记,记录了我最近几年学习Java并发的一些心得和体会。 J.U.C 整体认识原子操作 part 1 从AtomicInteger开始原子操作 part 2 数组、引用的原子操作原子操作 part 3 指令重排序与happens-before法则原子操作 part 4 CAS操作锁机制 part 1 Lock与ReentrantLock锁机制 par转载 2016-05-05 18:42:14 · 1596 阅读 · 0 评论