
java并发
文章平均质量分 94
java并发
一直AC丶
非常喜欢亚里士多德说的一句话,你知道的越多,你不知道的越多!
展开
-
一文了解CAS以及源码分析
声明:尊重他人劳动成果,转载请附带原文链接!学习交流,仅供参考!文章目录一、什么CAS?1、CAS简介2、CAS的三个操作数2、用处二、应用场景及源码分析三、等价代码实现1、等价代码实现四、CAS中的缺点(ABA问题),怎么解决?1、什么是ABA问题?2、自旋时间长一、什么CAS?1、CAS简介CAS 是compareAndSwap的简称,用中文表达则为比较并更新,简单的说,预期原值A和从某一内存中取得的值V两者相比较,如果预期原值A和内存值V相等,那么我们就把新值B更新到内存,如果不相等,那.原创 2021-11-20 00:08:11 · 921 阅读 · 0 评论 -
一文了解java并发工具----------ThreadLocal
声明:尊重他人劳动成果,转载请附带原文链接!学习交流,仅供参考!文章目录一、ThreadLocal简介1、什么是ThreadLocal?二、两大应用场景1、每个线程需要一个独立的对象2、每个线程内需要保存全局变量3、两种应用场景的总结三、使用ThreadLocal的好处四、实现原理、源码分析1、ThreadLocal实现线程独立的原理1、常用方法源码解析五、ThreadLocal使用不当,出现的内存泄露以及避免方案六、ThreadLocal注意点一、ThreadLocal简介1、什么是Thread.原创 2021-11-12 13:28:26 · 710 阅读 · 0 评论 -
一文了解线程池及实现原理
声明:尊重他人劳动成果,转载请附带原文链接!学习交流,仅供参考!文章目录一、线程池介绍1、什么是线程池?2、为什么要创建线程池?3、使用线程池的好处二、创建线程池1、线程池构造函数的参数详解2、线程池应该是手动创建还是自动创建?3、线程池里的线程数量设定多少才合适?三、停止线程池停止线程的正确方法四、线程池拒绝任务策略五、钩子方法六、实现原理、源码分析一、线程池介绍1、什么是线程池?线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程.原创 2021-11-10 14:48:25 · 564 阅读 · 0 评论 -
什么是死锁、活锁、饥饿?
声明:尊重他人劳动成果,转载请附带原文链接!学习交流,仅供参考!文章目录1、死锁的概念以及危害2、必然死锁的例子3、死锁排除以及分析方法3、1 jstack方法3、2 ThreadMXBean接口4、死锁修复策略5、实际项目中如何避免死锁?6、什么是活锁?7、什么是饥饿?1、死锁的概念以及危害发生场景:发生在并发中多线程/多进程改善了系统资源的利用率并且还提高了系统的处理能力,但是并发也带了新的问题----->死锁。概念:死锁是指两个或者两个以上的线程在执行过程中,由于竞争.原创 2021-11-06 00:21:13 · 635 阅读 · 0 评论 -
一文了解volatile高并发关键字
声明:尊重他人劳动成果,转载请附带原文链接!学习交流,仅供参考!文章目录1、volatile是什么?2、volatile实用那些场合?2.1 不适合场景 a++(递增或者递减,含有依赖关系的)2.2 适合场景2.2.1 赋值操作2.2.2 触发器4、volatile总结1、volatile是什么?1、volatile是一种同步机制,和synchroized、Lock两者之比,更加轻量,因为使用volatile并不会发生上下文切换等开销很大的行为。2、如果一个变量被volatile修饰,那么.原创 2021-10-28 14:40:47 · 302 阅读 · 0 评论 -
深入并发编程底层原理
声明:尊重他人劳动成果,转载请附带原文链接!学习交流,仅供参考!文章目录1、什么是底层原理?为什么要研究底层原理?2、JVM内存结构、Java内存模型、Java对象模型有什么区别?2.1、什么是JVM内存结构?(Java Virtual Model,JVM)2.1.1 程序计数器:2.1.2 Java虚拟机栈2.1.2 本地方法栈2.1.3 Java堆2.1.4 方法区(永久代)2.2 什么Java内存模型?(Java Memory Model,JMM)2.3 什么是Java对象模型?3、什么是重.原创 2021-10-27 22:50:18 · 535 阅读 · 0 评论 -
为什么要处理子线程中的异常?不处理可以吗?那该如何处理?
声明:尊重他人劳动成果,转载请附带原文链接!学习交流,仅供参考!文章目录1、前言:我们知道在单线程程序可以轻松发现异常,那么为什么子线程为什么不能轻松发现异常?2、常见错误一原因分析3、常见错误二原因分析4、那该怎么正确处理呢?1、在`run()`方法内部使用`try...catch...`2、使用UncaughtExceptionHandler全局处理1、实现Thread类中的UncaughtExceptionHandler接口,并且重写uncaughtException()方法2、使用Thread.原创 2021-10-25 19:53:45 · 310 阅读 · 0 评论 -
一文了解synchronized高并发关键字
文章目录前置知识:1、什么是线程安全性?2、什么是原子性?3、什么内置锁?4、什么是可见性?1、Synchronized的介绍2、不使用Synchronized会出现什么情况3、Synchronized的两种用法对象锁类锁对象锁和类锁两者区别4、多线程访问同步方法的七种情况5、Synchronized的性质可重入性不可中断性6、深入源码7、Synchronized的缺点8、常见面试题9、总结前置知识:1、什么是线程安全性?在互联网上可以搜索到许多的"定义",例如:…可以在多个线程中调用,并且线程之间原创 2021-10-03 20:41:50 · 859 阅读 · 0 评论