![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程与高并发
文章平均质量分 90
cy刘皇叔
这个作者很懒,什么都没留下…
展开
-
多线程总结(五)长文,详解ThreadLocal源码
在并发编程中有一个线程副本的概念,就是ThreadLocal,今天我们就着重来分析一个这个Theadlocal,我们将会从以下五个方面来分析这个问题,数据结构hash算法hash冲突内存泄漏问题set(),get()方法源码详解探测式清理,启发式清理扩容机制数据结构Thread类有一个类型为ThreadLocal.ThreadLocalMap的实例变量threadLocals,也就是说每个线程有一个自己的ThreadLocalMap。每个线程Thread拥有一份自己的副本变量,所以线程原创 2021-09-02 19:50:10 · 318 阅读 · 0 评论 -
多线程总结(四)万字长文,一篇彻底看懂ReentrantLock,AQS的源码
*多线程总结(四)ReentrantLock的源码理解一.前言首先在聊ReentrantLock之前,我们需要知道整个JUC的并发同步的基石,currrent里面所有的共享变量都是由volatile修饰的,我们知道volatile的语义有2大特点,可见性以及防止重排序(内存屏障,volatie写与volatile读)【1、当第二个操作为volatile写操做时,不管第一个操作是什么(普通读写或者volatile读写),都不能进行重排序。这个规则确保volatile写之前的所有操作都不会被重排序到vol原创 2021-04-04 22:37:18 · 3783 阅读 · 24 评论 -
多线程总结(三)Synchronized 关键字的底层实现原理(锁升级概念)以及优化
多线程总结(三)Synchronized 关键字的底层实现原理(锁升级概念)以及优化一,前言前面我们学习了Synchronized 关键字,的用法,学完直接,我们可以来深入了解一下Synchronized的实现原理以及优化二,实现原理首先我们要知道对象锁(monitor)机制Synchronized不论是修饰方法还是代码块,都是通过持有修饰对象的锁来实现同步,那么Synchronized锁对象是存在哪里?首先涉及一点jvm的知识(jvm我也还没有复习),可能解释的不是特别好,我们知道new出来的原创 2021-03-28 22:39:13 · 658 阅读 · 0 评论 -
多线程总结(一)-概念,场景,创建,使用,基本方法,基本状态,线程不安全的原理,以及关键字 Synchronized 的使用
多线程总结(一)-概念,场景,创建,使用,基本方法,基本状态,线程不安全的原理,以及关键字 Synchronized 的使用一.概念(场景)首先我们在学习程序与进程的时候知道,最小的执行单位是线程。个人认为多线程理解的最好概念就是,一个线程就是一个执行路径(path),多个线程就是多个路径。举个最简单的也最ok的例子,电影院买票,100张票,如果只有一个执行路径(一个买票窗口)那么会非常慢,这时候可以使用多个执行路径(多个线程也就是多个买票窗口),来提高电影院的工作的效率二.线程的创建线程的创建原创 2021-03-25 21:56:43 · 515 阅读 · 5 评论