随笔分类 - Java 并发
摘要:一、ThreadLocal简介ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 ThreadL
阅读全文
摘要:AQS原理AQS:AbstractQuenedSynchronizer抽象的队列式同步器。是除了java自带的synchronized关键字之外的锁机制。AQS的全称为(AbstractQueuedSynchronizer),这个类在java.util.concurrent.locks包 AQS的核
阅读全文
摘要:1. 简介# Java中常见的四种并发工具类: CountDownLatch(闭锁,我觉得叫门闩更好理解) CyclicBarrier Semaphore Exchanger 2. 主线程等待子线程之CountDownLatch# 原理 CountDownLatch允许一个或多个线程等待其他一组线程
阅读全文
摘要:线程的状态转换图 线程的几种状态(1)新建状态(New): 用new语句创建的线程处于新建状态,此时它和其他Java对象一样,仅仅在堆区中被分配了内存。(2)就绪状态(Runnable): 当一个线程对象创建后,其他线程调用它的start()方法,该线程就进入就绪状态,Java虚拟机会为它创建方法调
阅读全文
摘要:一、使用方式。 join是Thread类的一个方法,启动线程后直接调用,例如: Thread t = new AThread(); t.start(); t.join(); 二、为什么要用join()方法 在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的耗时的运算,主线程往往将于子线
阅读全文
摘要:分段锁与ConcurrentHashMap的实现原理,今天来用自己的理解类比一下ConcurrentHashMap中分段锁的实现。 ConcurrentHashMap使用了分段锁来保证线程安全,效率比起使用synchronized的HashTable要高的很多。每个集合都可以看作是一个存储东西的房子
阅读全文
摘要:一、什么是Executor框架? 我们知道线程池就是线程的集合,线程池集中管理线程,以实现线程的重用,降低资源消耗,提高响应速度等。线程用于执行异步任务,单个的线程既是工作单元也是执行机制,从JDK1.5开始,为了把工作单元与执行机制分离开,Executor框架诞生了,他是一个用于统一创建与运行的接
阅读全文

浙公网安备 33010602011771号