随笔分类 - 并发编程
整理一些并发编程的知识
摘要:#ThreadLocal有啥用 提供线程内的局部变量。 简单理解就是:如果想要一个变量只是当前线程内使用其他线程访问不到就选择使用ThreadLocal。 #怎么使用呢 我们使用程序模拟,多线程情况下,使用ThreadLocal实现线程内数据传递。 ###声明一个管理ThreadLocal的类 cl
阅读全文
摘要:#基于数据库实现分布式锁 ##思路 新建一张锁表就是用来加锁的表格; 谁往数据表格里添加数据成功就获得了锁; 利用数据库的行级锁,主键唯一性。 解锁的时候把数据删除掉。 别的线程就可以竞争插入这个数据从而获得锁。 ##代码实现 ###创建表格 ###使用mybatis实现操作锁表 ####定义map
阅读全文
摘要:什么是死锁 简单说: 有一个线程A,按照先获取锁a再获得锁b的的顺序获得锁, 而在此同时又有另外一个线程B,按照先锁b再锁a的顺序获得锁, 这个时候因为两个线程都在等待彼此手里的锁而形成了死锁。 如图: 死锁产生的四个条件 互斥条件 进程持有的资源,保证同一时间内只能有一个线程持有。 不剥夺条件 进
阅读全文
摘要:CountDownLatch 是什么 CountDownLatch的字面意思:倒计时 门栓 它的功能是:让一些线程阻塞直到另一些线程完成一系列操作后才唤醒。 它通过调用await方法让线程进入阻塞状态等待倒计时0时唤醒。 它通过线程调用countDown方法让倒计时中的计数器减去1,当计数器为0时,
阅读全文
摘要:介绍 这段时间一直在学习和整理一些通往java高级程序猿必备的知识点,有些是工作中必须要知道的,有些是面试必须要知道的, 但是不管怎么样,学习了就不会有坏处,不可能全部记得住,最起码得雁过留痕,知识不是非得分出来什么是高级什么是初级,只要你不会的对你来说都是高级, 今天主要是分享一下自己收集的有关j
阅读全文