
并发编程
郑琨51
好好学习,只争朝夕
展开
-
Java synchronized学习
synchronized简介静态方法加锁一般方法加锁实现原理代码块加锁实现原理Monitor对象对象内存布局1. 对象头(Header)2. 实例数据(Instance Data)3. 对齐填充(Padding)锁的升级过程偏向锁轻量级锁自旋锁重量级锁锁消除逃逸分析优化简介synchronized修饰符是Java提供的多线程访问临界资源的同步器,一般我们有三种使用方式:对类的静态方法加锁对类的一般方法加锁对代码块加锁静态方法加锁静态方法是属于类的,所以这种加锁实际上对类进行加锁,加锁对象为原创 2020-09-13 18:13:09 · 137 阅读 · 0 评论 -
AQS学习
文章目录AQS是啥特性主要属性1.状态2.阻塞队列自定义需要实现的方法isHeldExclusively()tryAcquire(int)tryRelease(int)tryAcquireShared(int)tryReleaseShared(int)需要注意的地方AQS是啥AQS (Abstract Queue Synchronizer),抽象队列同步器,定义了一套多线程访问共享资源的同步器框架,是一个依赖状态的同步器。特性阻塞等待队列共享/独占公平/非公平可重入允许中断主要属性1原创 2020-09-08 21:21:08 · 126 阅读 · 0 评论 -
JAVA线程池
JAVA线程池为啥要用线程池什么时候使用线程池线程池主要方法线程池状态线程池创建1. corePoolSize 核心线程数2. maximumPoolSize 最大线程数3. keepAlivetime 线程最大空余时间4. workQueue 等待线程队列5. threadFactory 线程工厂6. handler 拒绝策略为啥要用线程池JAVA虚拟机线程实现是KLT模型,与OS线程是1:1的映射关系,就是使用内核态线程来实现虚拟机线程,所以线程的创建、调度、销毁都需要切换到内核态,所以线程是稀原创 2020-09-01 21:16:25 · 121 阅读 · 0 评论