
并发
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
10分钟搞定 Java 并发队列好吗?好的
前言如果按照用途与特性进行粗略的划分,JUC 包中包含的工具大体可以分为 6 类: 执行者与线程池 并发队列 同步工具 并发集合 锁 原子变量 在【并发系列】中,主要讲解了执行者与线程池,同步工具,锁, 在分析源码时,或多或少的提及到了「队列」,队列在 JUC 中也是多种多样存在,所以本文就以「远看」视角,帮助大家快速了解与区分这些看似「杂乱」的队列并发队列Java 并发队列按照实现方式来进行划分可以分为 2 种: 阻塞队列..转载 2020-08-26 10:16:12 · 279 阅读 · 0 评论 -
厉害了,如何通过双 key 来解决缓存并发问题?
来源公众号:IT人的职场进阶https://mp.weixin.qq.com/s/qOxTw4vT744ZjsJkc5HsEQ我们在使用缓存的时候,不管Redis或者是Memcached,基本上都会遇到以下3个问题:缓存穿透、缓存并发、缓存集中失效。这篇文章主要针对【缓存并发】问题展开讨论,并给出具体的解决方案。1.什么是缓存并发?在高并发的访问下,当某个缓存处于过期失效的时间点时,极有可能出现多个进程同时查询该缓存(该缓存是业务场景中非常 "热点" 的数据,比如首页的缓存数据)。因为查.转载 2020-07-11 20:56:04 · 436 阅读 · 0 评论 -
ThreadLocal可以解决并发问题吗
前言到底什么是线程的不安全?为什么会存在线程的不安全?线程的不安全其实就是多个线程并发的去操作同一共享变量没用做同步所产生意料之外的结果。那是如何体现出来的呢?我们看下面的一个非常经典的例子:两个操作员同时操作同一个银行账户,A操作员存钱,100B操作员取钱50。我们看一下流程。两个操作员同时处理,没用做同步这个时候我们发现银行账户最终余额剩余950元,在我们想的最终结果银行账户应该剩余1000+100-50=1050元,在执行过程中我们没有加锁,最终导致了运行结果偏离预期。那么如何解决的?一般转载 2020-05-13 18:34:07 · 384 阅读 · 0 评论 -
Java中有哪些无锁技术来解决并发问题?如何使用?
除了使用 synchronized、Lock 加锁之外,Java 中还有很多不需要加锁就可以解决并发问题的工具类一、原子工具类JDK 1.8 中,java.util.concurrent.atomic 包下类都是原子类,原子类都是基于 sun.misc.Unsafe 实现的。CPU 为了解决并发问题,提供了 CAS 指令,全称 Compare And Swap,即比较并交互 CA...转载 2020-03-19 09:56:09 · 276 阅读 · 0 评论 -
活锁,也许你需要了解一下
前两天看极客时间Java并发课程的时候,刷到一个概念:活锁。死锁,倒是不陌生,活锁却是第一次听到。在介绍活锁之前,我们先来复习一下死锁。下面的例子模拟一个转账业务,多线程环境,为了账户金额安全,对账户进行了加锁。 1publicclassAccount{ 2publicAccount(intbalance,Stringcard){ 3thi...转载 2020-03-04 21:58:24 · 1719 阅读 · 0 评论 -
伪共享(false sharing),并发编程无声的性能杀手
在并发编程过程中,我们大部分的焦点都放在如何控制共享变量的访问控制上(代码层面),但是很少人会关注系统硬件及 JVM 底层相关的影响因素。前段时间学习了一个牛X的高性能异步处理框架 Disruptor,它被誉为“最快的消息框架”,其 LMAX 架构能够在一个线程里每秒处理 6百万 订单!在讲到 Disruptor 为什么这么快时,接触到了一个概念——伪共享( false sharing ),其中提...转载 2020-03-04 11:52:51 · 350 阅读 · 0 评论 -
Java 并发异步编程,原来十个接口的活现在只需要一个接口就搞定!
什么?对你没有听错,也没有看错 ..多线程并发执行任务,取结果归集~~ 不再忧愁....感谢大家的双击+点赞和关注 下面起锅烧油引言先来看一些APP的获取数据,诸如此类,一个页面获取N多个,多达10个左右的一个用户行为数据,比如:点赞数,发布文章数,点赞数,消息数,关注数,收藏数,粉丝数,卡券数,红包数........... 真的是多~ 我们看些图:平时要10+接口的去获取...转载 2019-12-28 09:05:38 · 253 阅读 · 0 评论 -
忘掉 Java 并发,先听完这个故事。。。
最近在给别人讲解 Java 并发编程面试考点时,为了解释锁对象这个概念,想了一个形象的故事。后来慢慢发现这个故事似乎能讲解 Java 并发编程中好多核心概念,于是完善起来形成了这篇文章。大家先忘记并发编程,只听我给你讲个故事:故事可能比较奇怪,有这么一个学校,里面有好多好多人,我们简单分成学生、老师、以及宿管阿姨。学校中间还有一个很奇葩的水果超市,里面有个仓库放着苹果、西瓜、橘子。...转载 2019-11-22 18:18:48 · 185 阅读 · 0 评论 -
如何模拟超过 5 万用户的并发访问?
来源:http://t.cn/ES7KBkW本文将从负载测试的角度,描述了做一次流畅的5万用户并发测试需要做的事情.你可以在本文的结尾部分看到讨论的记录.快速的步骤概要 编写你的脚本 使用JMeter进行本地测试 BlazeMeter沙箱测试 使用一个控制台和一个引擎设置Users-per-Engine的数量 设置并测试你的集合 (1个...转载 2019-10-29 16:24:52 · 988 阅读 · 0 评论 -
敢不敢模拟超过 5 万的并发用户?
来自:http://t.cn/ES7KBkW本文将从负载测试的角度,描述了做一次流畅的5万用户并发测试需要做的事情.你可以在本文的结尾部分看到讨论的记录.快速的步骤概要 编写你的脚本 使用JMeter进行本地测试 BlazeMeter沙箱测试 使用一个控制台和一个引擎设置Users-per-Engine的数量 设置并测试你的集合 (...转载 2019-06-05 13:28:10 · 280 阅读 · 0 评论 -
分享一道阿里Java并发面试题 (详细分析篇)
我个人一直认为:网络、并发相关的知识,相对其他一些编程知识点更难一些,主要是不好调试并且涉及内容太多 !所以今天就取一篇并发相关的内容分享下,我相信大家认真看完会有收获的。大家可以先看看这个问题,看看这个是否有问题呢? 那里有问题呢?如果你在这个问题上面停留超过5s的话,那么表示你对这块某些知识还有点模糊,需要再巩固下,下面我们一起来分析下!1. 结论多线程并发的同时进...转载 2019-05-14 21:04:33 · 471 阅读 · 0 评论 -
数据库并发控制,选择乐观锁还是悲观锁?
出处:http://www.cnblogs.com/chenlulouis/今天,在这里,我们将讨论的是在实际生产过程中,对于并发控制你是选择乐观锁还是悲观锁。这两种锁各自的应用环境应该怎样选择?实际生产环境里边,如果并发量不大,完全可以使用悲观锁定的方法,这种方法使用起来非常方便和简单。但是如果系统的并发非常大的话,悲观锁定会带来非常大的性能问题,所以就要选择乐观锁定的方法。...转载 2019-04-13 09:20:50 · 1161 阅读 · 1 评论 -
Java 中如何模拟真正的同时并发请求?
有时需要测试一下某个功能的并发性能,又不要想借助于其他工具,索性就自己的开发语言,来一个并发请求就最方便了。java中模拟并发请求,自然是很方便的,只要多开几个线程,发起请求就好了。但是,这种请求,一般会存在启动的先后顺序了,算不得真正的同时并发!怎么样才能做到真正的同时并发呢?是本文想说的点,java中提供了闭锁 CountDownLatch, 刚好就用来做这种事就最合适了。只需要:...转载 2019-04-09 10:08:53 · 577 阅读 · 0 评论 -
Java并发编程中的若干核心技术,向高手进阶
来源:http://www.jianshu.com/p/5f499f8212e7引言本文试图从一个更高的视角来总结Java语言中的并发编程内容,希望阅读完本文之后,可以收获一些内容,至少应该知道在Java中做并发编程实践的时候应该注意什么,应该关注什么,如何保证线程安全,以及如何选择合适的工具来满足需求。当然,更深层次的内容就会涉及到JVM层面的知识,包括底层对Java内存的管...转载 2019-04-11 13:57:47 · 203 阅读 · 0 评论 -
Java 并发框架全览,这个牛逼!
来自:唐尤华https://dzone.com/articles/a-birds-eye-view-on-java-concurrency-frameworks-11. 为什么要写这篇文章几年前 NoSQL 开始流行的时候,像其他团队一样,我们的团队也热衷于令人兴奋的新东西,并且计划替换一个应用程序的数据库。 但是,当深入实现细节时,我们想起了一位智者曾经说过的话:“细节决定成败”...转载 2019-03-15 10:13:10 · 9519 阅读 · 2 评论 -
来,带你鸟瞰 Java 中的并发框架!
来自 ImportNew,作者:唐尤华https://dzone.com/articles/a-birds-eye-view-on-java-concurrency-frameworks-11. 为什么要写这篇文章几年前 NoSQL 开始流行的时候,像其他团队一样,我们的团队也热衷于令人兴奋的新东西,并且计划替换一个应用程序的数据库。 但是,当深入实现细节时,我们想起了一位智者曾经...转载 2019-02-21 18:48:46 · 301 阅读 · 0 评论 -
从一个故障说说Java的三个BlockingQueue
最近出了个故障,排查的时候耗费了很长的时间,回顾整个排查过程,经验主义在这里起了不好的作用,直接导致了整个故障排查的时间非常长,这个故障的根本原因在于BlockingQueue用的有问题,顺带展开说说Java中常用的几个BlockingQueue:ArrayBlockingQueue、LinkedBlockingQueue和SynchronousQueue。当时故障的现象是应用处理请求的线...转载 2018-11-23 08:49:56 · 480 阅读 · 0 评论 -
并发控制--悲观锁和乐观锁详解
背景考虑下面两个并发带来的问题:1、丢失更新:一个事务的更新结果覆盖了其它事务的更新结果,即所谓的更新丢失。2、脏读:当一个事务读取其它完成一半事务的记录时,就会发生脏读取。例如:两个用户同时修改商品库存表,A、B同时进入,看到的库存都是100,A购买一件把库存修改为99(100-1)。此时B购买两件把库存修改为98(100-2),因为A、B同时读到的库存都是100,B...转载 2018-11-05 10:32:20 · 392 阅读 · 0 评论 -
聊聊并发-Java中的Copy-On-Write容器
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。...转载 2018-10-17 15:25:38 · 289 阅读 · 0 评论