摘要: 1、概览 当多线程帮助我们提高应用性能的同时,它同时也带来一些问题,本文我们将借助几个小例子看下两个问题,死锁和活锁。 2、死锁 2.1、什么是死锁 死锁发生在当两个或多个线程一直在等待另一个线程持有的锁或资源的时候。这会导致一个程序可能会被拖垮或者直接挂掉,因为线程们都不能继续工作了。 经典的哲学 阅读全文
posted @ 2020-06-23 23:45 Mr靖哥哥 阅读(942) 评论(0) 推荐(0) 编辑
摘要: 背景 公司接了个新项目,需在平台上增加几个新接口,问题是本来说是和平台一起迭代发布的时间提前了,但当前的代码都和其他开发人员一起提交到了develop中,现在要提前发布只能从master拉出一个分支来把我的提交都添加上去然后测试发布。 操作命令 cherry-pick 当时想到的第一个命令就是这个, 阅读全文
posted @ 2020-06-22 22:32 Mr靖哥哥 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 两者的各种叫法 相关子查询叫做:Correlated Subqueries 非相关子查询也叫普通子查询或嵌套子查询:Nested SubQueries 相关子查询MySQL解释 相关子查询是一个子查询中引用了某张表且这张表也在子查询外部被使用到。比如: SELECT * FROM t1 WHERE 阅读全文
posted @ 2020-06-21 21:09 Mr靖哥哥 阅读(2954) 评论(0) 推荐(1) 编辑
摘要: 背景 有两张表,都是主键递增,类似于主表和明细表: statistics_apply:统计申请表,主键applyId,7万多条记录 statistics_apply_progress:统计申请进度表(申请统计的状态变更记录表),主键progressId,字段applyId保存的是上表的主键,30多万 阅读全文
posted @ 2020-06-20 16:36 Mr靖哥哥 阅读(2111) 评论(0) 推荐(0) 编辑
摘要: 1、概览 本文我们来看下java.lang包中的ThreadLocal,它赋予我们给每个线程存储自己数据的能力。 2、ThreadLocal API ThreadLocal允许我们存储的数据只能被特定的线程``访问。 我们现在存储一个整形并把它和一个特定的线程绑定: ThreadLocal<Inte 阅读全文
posted @ 2020-06-19 23:41 Mr靖哥哥 阅读(193) 评论(0) 推荐(0) 编辑
摘要: Semaphore (JDK) 我们使用semaphore去限制获取特定资源的并发线程数量。 下面的例子中,我们实现了一个简单的登录队列来限制登入系统的用户数量: class LoginQueueUsingSemaphore { private Semaphore semaphore; public 阅读全文
posted @ 2020-06-18 23:07 Mr靖哥哥 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 1、介绍 本文我们将比较一下CyclicBarrier和CountDownLatch并了解两者的相似与不同。 2、两者是什么 当谈到并发,将这两者概念化的去解释两者是做什么的,这其实是一件很有挑战的事情。 首先,这两者都是管理多线程的工具。 其次,两者都具备让一个或多个线程等待执行的功能。 2.1、 阅读全文
posted @ 2020-06-17 20:05 Mr靖哥哥 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 1、简介 CyclicBarrier是一个同步器,允许多个线程等待彼此直到达一个执行点(barrier)。 CyclicBarrier都是在多个线程必须等到彼此都到达同一个执行点后才执行一段逻辑时才被使用。 barrier被叫做cyclic是因为阻塞线程恢复后可以重复使用barrier 2、使用 C 阅读全文
posted @ 2020-06-16 22:49 Mr靖哥哥 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 1、介绍 本文将介绍CountDownLatch并给出实践中的几个例子,通过使用CountDownLatch我们可以让一个线程阻塞直到其他一个或多个线程执行完成。 A synchronization aid that allows one or more threads to wait until 阅读全文
posted @ 2020-06-15 21:36 Mr靖哥哥 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 问题示例 List<Integer>[] intListArr = new ArrayList<Integer>[8]; // 编译时报错 能看到这么看似没啥问题的一个简单语句甚至连编译都不会通过,为了能理解这里面的缘由,我们先得了解变型(Variant)的概念 变型(variant) 协变(cov 阅读全文
posted @ 2020-06-14 22:15 Mr靖哥哥 阅读(318) 评论(0) 推荐(0) 编辑