随笔分类 -  并发安全

摘要:原文链接:https://www.cnblogs.com/DreamRecorder/p/9223016.html 在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是Blockin 阅读全文
posted @ 2019-07-29 22:59 枫树湾河桥 阅读(1732) 评论(0) 推荐(1) 编辑
摘要:JVM内存区域里面有一块常量池,关于常量池的分配: 字符串是存储在常量池中的,有两种类型的字符串数据会存储在常量池中: 常量池中的String数据有一个特点:每次取数据的时候,如果常量池中有,直接拿常量池中的数据;如果常量池中没有,将数据写入常量池中并返回常量池中的数据。 这个在jdk6里问题不算大 阅读全文
posted @ 2019-07-28 20:59 枫树湾河桥 阅读(1270) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://blog.csdn.net/u011392897/article/details/60480108 LongAdder是jdk8新增的用于并发环境的计数器,目的是为了在高并发情况下,代替AtomicLong/AtomicInt,成为一个用于高并发情况下的高效的通用计数器。高 阅读全文
posted @ 2018-10-29 21:30 枫树湾河桥 阅读(260) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://blog.csdn.net/csdn_ds/article/details/72984646 以前没有注意到SimpleDateFormat线程不安全的问题,写时间工具类,一般写成静态的成员变量,不知,此种写法的危险性!在此讨论一下SimpleDateFormat线程不安全 阅读全文
posted @ 2018-10-28 22:21 枫树湾河桥 阅读(1246) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://www.jianshu.com/p/9c2198586f9b 2.2、 并发包中ThreadLocalRandom类原理剖析 ThreadLocalRandom类是JDK7在JUC包下新增的随机数生成器,它解决了Random类在多线程下多个线程竞争内部唯一的原子性种子变量而 阅读全文
posted @ 2018-10-28 21:13 枫树湾河桥 阅读(556) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://www.cnblogs.com/linjiqin/p/8003838.html 前言 分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有 阅读全文
posted @ 2018-08-24 15:32 枫树湾河桥 阅读(232) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://www.cnblogs.com/dolphin0520/p/3920407.html 一.深入解析ThreadLocal类 先了解一下ThreadLocal类提供的几个方法: get()方法是用来获取ThreadLocal在当前线程中保存的变量副本,set()用来设置当前线 阅读全文
posted @ 2018-08-21 15:33 枫树湾河桥 阅读(225) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://blog.csdn.net/sunhaoning/article/details/68924625 StamppedLock是Java 8中引入的一种新的锁机制。读写锁虽然分离了读和写的功能,使得读与读之间可以完全并发。但是,读和写之间依然是冲突的。读锁会完全阻塞写锁,它使 阅读全文
posted @ 2018-08-21 14:00 枫树湾河桥 阅读(838) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://www.jianshu.com/p/9f98299a17a5 前言 本篇适用于了解ReentrantLock或ReentrantReadWriteLock的使用,但想要进一步了解原理的读者。见于之前的分析都是借鉴大量的JDK源码,这次以流程图的形式代替源码,希望读者能有更好 阅读全文
posted @ 2018-08-19 22:51 枫树湾河桥 阅读(321) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://blog.csdn.net/mmoren/article/details/79185862 本篇的思路是先阐明无锁执行者CAS的核心算法原理然后分析Java执行CAS的实践者Unsafe类,该类中的方法都是native修饰的,因此我们会以说明方法作用为主介绍Unsafe类, 阅读全文
posted @ 2018-08-19 22:43 枫树湾河桥 阅读(364) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://blog.csdn.net/chenssy/article/details/60781148 AQS内部维护着一个FIFO队列,该队列就是CLH同步队列。 CLH同步队列是一个FIFO双向队列,AQS依赖它来完成同步状态的管理,当前线程如果获取同步状态失败时,AQS则会将当 阅读全文
posted @ 2018-08-19 22:33 枫树湾河桥 阅读(1115) 评论(0) 推荐(1) 编辑
摘要:原文链接:https://blog.csdn.net/jeffleo/article/details/56677425 一、ReentranLock 相信我们都使用过ReentranLock,ReentranLock是Concurrent包下一个用于实现并发的工具类(ReentrantReadWri 阅读全文
posted @ 2018-08-19 22:30 枫树湾河桥 阅读(587) 评论(0) 推荐(0) 编辑
摘要:CompletionService 也不是到处都能用,它不适合处理任务数量有限但个数不可知的场景。例如,要统计某个文件夹中的文件个数,在遍历子文件夹的时候也会“递归地”提交新的任务,但最后到底提交了多少,以及在什么时候提交完了所有任务,都是未知数,无论 CompletionService 还是线程池 阅读全文
posted @ 2018-04-26 20:12 枫树湾河桥 阅读(1380) 评论(0) 推荐(0) 编辑
摘要:为什么要使用线程池 线程是一个操作系统概念。操作系统负责这个线程的创建、挂起、运行、阻塞和终结操作。而操作系统创建线程、切换线程状态、终结线程都要进行CPU调度——这是一个耗费时间和系统资源的事情。 另一方面,大多数实际场景中是这样的:处理某一次请求的时间是非常短暂的,但是请求数量是巨大的。这种技术 阅读全文
posted @ 2018-04-24 09:50 枫树湾河桥 阅读(969) 评论(0) 推荐(0) 编辑
摘要:1.Volatile 变量 Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。 Java 语言中的 volatile 变量可以 阅读全文
posted @ 2018-03-16 20:29 枫树湾河桥 阅读(8541) 评论(3) 推荐(4) 编辑

Live2D
欢迎阅读『并发安全』
哥伦布
17:14发布
哥伦布
17:14发布
9°
东南风
3级
空气质量
相对湿度
71%
今天
大雨
2°/14°
周四
小雨
3°/11°
周五
小雨
0°/11°
点击右上角即可分享
微信分享提示