多线程
OnlyGky
欢迎大家去我的掘金博客围观:
https://juejin.cn/user/3034307824470606/activities
展开
-
countdownlatch的使用详解(好懂!!)
countdownlatch 是一个同步类工具,不涉及锁定,当count的值为零时当前线程继续运行,不涉及同步,只涉及线程通信的时候,使用它较为合适public class testLatch { public static void main(String[] args) { CountDownLatch begin = new CountDownLatch(1);...原创 2019-06-19 16:15:10 · 41406 阅读 · 4 评论 -
高并发锁Lock的详细使用
Lock的基本属性* 1)Lock是手动锁,加锁和释放必须得手动进行* 2)使用ReentrantLoock,尝试锁定,“tryLock”,这样无法锁定,或者在指定时间内无法锁定,* 线程可以决定是否等待* 3)使用ReenTrantLock还可以调用lockInterruptibly方法,可以对线程的interrupt做成响应* 在一个线程等待的过程中,可以被打断...原创 2019-06-19 21:42:07 · 1127 阅读 · 0 评论 -
ThreadLocal工作原理和内存泄漏的预防
ThreadLocal是什么?ThreadLocal是一个用于提供线程局部变量的一个工具类,用于保证线程安全,在他里面包含了一个ThreadLocalMap,真正的引用确是在Thread中,一般用private static加以修饰,ThreadLocal的作用threadlocal用于存取线程独享数据,提高访问效率。ThreadLocal的底层源码当我们要将一个Object放入对应的线...原创 2019-06-20 14:02:14 · 306 阅读 · 0 评论 -
实现线程安全的单例模式的四种方式
使用使用静态内部类,不用加锁,也能实现懒加载public class Singleton { private Singleton(){ System.out.println("single"); } private static class Inner{ private static Singleton s=new Singleton()...原创 2019-06-20 16:51:15 · 228 阅读 · 0 评论 -
Synchronized的使用详解与区别(干货满满!!!)
Synchronizedsynchronized是一个重量级锁,不过在经过Java8的优化之后性能也提升了好多首先我们要明白,锁是锁在哪里?原创 2019-06-17 11:01:49 · 317 阅读 · 0 评论 -
volatile关键字的用法
volatile是确保内存之间元素可见的关键字,效率比synchornized高,但是并不保证线程的原子性这里一共有main线程和new出来的两个线程,两个线程中各自有自己的缓存,如果没有volatile的话,每次都一般只会从自己的线程的缓冲区里面拿值,所有main改变了也没什么用,而加了volatile的值一旦发生改变,存有running值的线程会自动被提示该值已过期,就会再从主线程里面重...原创 2019-06-18 14:01:50 · 170 阅读 · 0 评论 -
AQS功能及源码详解
1.简介AQS(AbstractQueuedSynchronizer)本身是一个抽象类,主要的使用方法是继承它作为一个内部类,JDK中许多并发工具类的内部实现都依赖于AQS,如ReentrantLock, Semaphore, CountDownLatch等等。public abstract class AbstractQueuedSynchronizer extends AbstractOw...原创 2019-07-07 16:22:28 · 967 阅读 · 0 评论 -
JAVA六大线程池详解
1)Executor执行器详解线程池的最顶层接口,内部就一个execute方法yong书写线程的具体执行方式public class testExecutor implements Executor { public static void main(String[] args) { new testExecutor().execute(()-> System...原创 2019-06-27 22:27:14 · 289 阅读 · 0 评论 -
Java集合系列---ConcurrentHashMap源码解析
ConcurrentHashMap是Java并发容器的一员,jdk1.8以后的基本的数据结构和HashMap相似,也是选用了数组+链表/红黑树的结构,在jdk1,.7以前则是采用了分段锁的技术。ConcurrentHashMap所有操作都是线程安全的,但获取操作不必锁定,并且不支持以某种防止所有访问的方式锁定整个表。1 继承关系public class ConcurrentHashMap<...原创 2019-07-23 20:44:01 · 177 阅读 · 0 评论