
多线程和高并发
文章平均质量分 95
哪里的船迷醉了夕阳
这个作者很懒,什么都没留下…
展开
-
并发知识点总结
文章目录1、线程同步和互斥?1.1、互斥1.2、同步1.3、区别1.4、实现方式2、线程的状态有哪些?2.1、状态转换3、wait和sleep的区别4、Java乐观锁和悲观锁5、volatile6、synchronized7、synchronized偏向锁、轻量级锁、重量级锁的升级过程8、synchronized与ReentrantLock区别9、JUC中的原子变量以及原子操作如何实现的10、AQS作用以及实现原理11、线程池12、阻塞队列13、ThreadLocal 1、线程同步和互斥? 1.1、互斥原创 2021-12-21 17:18:09 · 1012 阅读 · 0 评论 -
浅谈synchronized
文章目录1、synchronized原理2、synchronized优化2.1、CAS2.1.1、CAS底层原理2.1.1.1、unsafe类2.1.1.2、变量valueOffset2.1.1.3、变量value用volatile修饰2.1.2、CAS总结2.2、Java对象布局2.2.1、Java对象头2.3、synchronized锁升级过程2.3.1、偏向锁2.3.1.1、偏向锁撤销2.3.2、轻量级锁2.3.2.1、轻量级锁解锁2.4、锁的优缺点对比 学习地址:黑马 1、synchronized原原创 2021-12-06 17:32:11 · 349 阅读 · 0 评论 -
浅谈ThreadLocal
文章目录1. 问题来源2、ThreadLocal简单使用3、实现原理3.1、set3.2、get3.3、问题4、对象回收4.1、内存泄露4.2、key为什么使用弱引用?5、进一步了解Thread.ThreadLocalMap5.1、ThreadLocalMap6、自己实现一个ThreadLocal 学习来源:Java高并发程序设计、视频、博客 1. 问题来源 除了控制资源访问资源,还可以通过增减资源来保证所有对象的线程安全。 书中举例说:100个人去填表,只有一支笔,为了不发生哄抢,管理人员就得去维护(锁原创 2021-12-06 15:23:43 · 424 阅读 · 0 评论 -
浅谈线程池
1、线程池 线程的创建和关闭依然需要花费时间,如果每个任务都开一个线程,那么可能就会出现创建+销毁的时间> 任务真实的时间。 其次,线程也是占用内存的,大量线程处理不当可能出现OOM异常。 因此大量的线程只会拖垮应用系统。需要对线程进行控制和管理。 1.1、什么是线程池? 简单的说:当想要使用线程的时候,直接去线程池中取,当然,线程池中线程的个数也是有限的。当一个线程完成工作的时候,将这个线程返回线程池中。 特点:线程复用、控制最大并发数、管理线程 1.1.1、为什幺要使用线程池? 多核处理原创 2021-10-16 16:54:27 · 142 阅读 · 0 评论 -
浅谈阻塞队列
文章目录1、阻塞队列是什么?2、接口及其实现类3、核心方法4、生产者和消费者 1、阻塞队列是什么? 首先是一个队列。其次才是阻塞。生产者消费者模式,生产者一边生产,消费者一边消费,那么把这两个想象成两个线程,一个在往里塞,一个在往外拿。 当生产的线程生产满了,而消费的线程没有来得及取出,阻塞。 当消费者线程消费的太快了,生产者还没有来得及生产,导致没东西可取,阻塞。 阻塞队列的好处:不需要关心什么时候阻塞线程,什么时候唤醒线程。 2、接口及其实现类 ArrayBlockQueue:由数组结构组原创 2021-10-16 15:44:53 · 253 阅读 · 0 评论