![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
面目不露骨
这个作者很懒,什么都没留下…
展开
-
小议线程池--ThreadPoolExecutor和Executors
线程池线程池顾名思义就是事先创建若干个可执行的线程放入一个池(容器)中,需要的时候从池中获取线程不用自行创建,使用完毕不需要销毁线程而是放回池中,从而减少创建和销毁线程对象的开销。合理使用线程池有以下三个好处:降低资源消耗。通过重复利用已创建好的线程减少线程的创建和销毁造成的消耗提高响应速度。当任务到达时,不需要等待线程创建就可以立即执行提高线程的可管理性。线程是珍稀资源,如果无限制地...原创 2020-04-25 19:50:22 · 663 阅读 · 0 评论 -
一篇没人看的关于volatile偏底层原理的枯燥文章
深入理解volatilevolatile关键字可以说是Java虚拟机提供的最轻量级的同步机制了,我们应该了解并正确使用volatile关键字以在某些情况下代替重量级的synchronized锁,提高程序效率。注意,阅读本文需要先阅读《深入理解Java虚拟机》P362-371及《Java并发编程的艺术》P8-10。volatile关键字的内存语义这是十分重要的点,也是面试经常考察的,总结起来...原创 2020-04-21 02:02:55 · 163 阅读 · 0 评论 -
一篇没人看的ThreadLocal源码详解的枯燥文章
ThreadLocal详解ThreadLocal有什么用Synchronized的作用是同步线程使它们能安全地对共享变量进行操作,而ThreadLocal它的作用就是进行线程间的数据隔离,即每个线程都有自己的一个变量副本,彼此不会影响对方的数据。先来实践感受一下:public class ThreadLoaclTest { static ThreadLocal<Integer&...原创 2020-04-07 16:27:07 · 263 阅读 · 0 评论 -
Lock锁源码浅析--论如何凭枯燥吓退看客
Java中的锁重入锁(ReentrantLock)读写锁(ReentrantReadWriteLock)Java锁如何实现public class ReentrantLock implements Lock, java.io.Serializable { private static final long serialVersionUID = 73739848725724146...原创 2020-04-04 23:48:42 · 141 阅读 · 1 评论 -
奈何没文化,捋捋JVM锁状态一丝皮毛
锁是什么?线程获取的锁到底是什么东西呢?每个对象都有的锁其实是一个用c++写的Monitor对象,每个Java对象有且只有一个Monitor对象。Monitor的数据结构如下: ObjectMonitor() { ...... // 用来锁的进入次数,为0说明该锁还没有被获取 _count = 0; // 锁的重入次数 _recursio...原创 2020-04-04 17:13:08 · 137 阅读 · 0 评论