![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java-并发篇
文章平均质量分 92
有关并发的一些知识点
Alan0517
...
展开
-
Java-并发篇-09-浅读java并发
文章目录1. 前置基础知识1.1 位运算的知识1.2 大致图2. Java集合框架2.1 JCF中的 List集合2.1.1 接口介绍2.1.1.1 java.lang.Iterable接口2.1.1.2 java.util.AbstractList抽象类2.1.1.3 java.util.Collection接口2.1.1.4 java.util.RandomAccess接口2.1.2 List集合实现—Vector2.1.2.1 扩容操作2.1.2.1.1 什么时候扩容?2.1.2.1.2 扩容详原创 2023-06-18 17:00:05 · 19 阅读 · 0 评论 -
Java-并发篇-09-关于阻塞队列
阻塞队列,即BlockingQueue,它是一个接口,继承自Queue 接口,是队列的一种。Queue 和 BlockingQueue 都是在 Java 5 中加入的。阻塞队列是线程安全的,典型的应用场景是在生产者/消费者模式中,用于存储数据,保证再多线程下的正确运行除了BlockingQueue,Queue接口的实现类和子类还有很多,如下图所示:上述实现类和子类中,除了Deque都是线程安全的,而这些线程安全的队列可以分为阻塞队列和非阻塞队列两大类。原创 2021-01-14 19:38:14 · 221 阅读 · 1 评论 -
Java-并发篇-08-实现异步的八种方式
在实际开发中,很多业务场景都需要使用到异步,因此列举以下常见得八种异步方式。原创 2023-03-23 17:32:06 · 582 阅读 · 0 评论 -
Java-并发篇-07-Java的有界队列和无界队列
直到一个生产者线程意欲向队例中放入一个元素,这里他发现最前面的元素的数据项字段为 NULL,他就直接把自已数据填充到这个元素中,即完成了元素的传送。比较奇葩,内部容量为零,适用于元素数量少的场景,尤其特别适合做交换数据用,内部使用 队列来实现公平性的调度,使用栈来实现非公平的调度,在Java6时替换了原来的锁逻辑,使用CAS代替了。补充一点,并不是在所有场景下,非阻塞都是好的,阻塞代表着不占用CPU,在有些场景也是需要阻塞的,put take 存在必有其存在的必然性。缓存:清掉缓存中超时的缓存数据。原创 2021-03-27 19:04:57 · 3221 阅读 · 0 评论 -
Java-并发篇-06-线程的几种状态
线程从创建、运行到结束总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。原创 2021-03-18 22:59:17 · 218 阅读 · 0 评论 -
Java-并发篇-05-ThreadLocal
ThreadLoal变量,线程局部变量,同一个ThreadLocal所包含的对象,在不同的Thread中有不同的副本。因为每个Thread 内有自己的实例副本,且该副本只能由当前Thread 使用。这是也是ThreadLocal 命名的由来。既然每个Thread有自己的实例副本,且其它Thread不可访问,那就不存在多线程间共享的问题。ThreadLocal提供了线程本地的实例。它与普通变量的区别在于,每个使用该变量的线程都会初始化一个完全独立的实例副本。原创 2021-01-14 19:59:33 · 201 阅读 · 0 评论 -
Java-并发篇-04-Synchronized和ReentrantLock区别
因为如果使用Synchronized,高并发情况还好,,这才是它重量级锁的原因,而Reentrantlock是java层面的,当然它使用到了CAS,所以才有了reentrantlock,所以在Reentrantlock在线程交替执行下性能远远超过Synchronized ,但是1.6之后Synchronized优化了,两者就差不多了。原创 2021-01-14 19:39:43 · 659 阅读 · 1 评论 -
Java-并发篇-03-线程池以及ThreadPoolExecutor的理解
2,5,1L,//默认抛出异常//回退调用者//处理不来的不处理//模拟10个用户来办理业务 没用户就是来自外部的请求线程.try {i <= 10;i++) {System.out.println(Thread.currentThread().getName() + "\t 办理业务");});/*** 一池5个处理线程*//*** 一池一线程*//*** 一池N线程*///模拟10个用户来办理业务 没用户就是来自外部的请求线程.try {原创 2021-01-14 19:38:57 · 759 阅读 · 1 评论 -
Java-并发篇-02-CAS
CAS原创 2021-01-13 23:17:36 · 221 阅读 · 0 评论 -
Java-并发篇-01-Volatile
Volatile原创 2021-01-13 23:17:16 · 337 阅读 · 1 评论