JUC并发编程
文章平均质量分 93
并发
薛薛哦
这个作者很懒,什么都没留下…
展开
-
多线程之八:补充
(简略版)1. lambda表达式;2. Callable的实现细节(内含它与Runnable的区别);四大函数式接口可以配合Lambda表达式 简化开发,如流式计算的filter就是用到了Predicate断言接口:4. strem流式计算;5. 分支合并框架ForkJoin;6. 异步回调CompletableFuture;7. 线程之间通讯方式方式一:使用 volatile 关键字方式二:使用Object类的wait() 和 notify() 方法。原创 2023-12-11 10:26:23 · 834 阅读 · 0 评论 -
多线程之七:复习回顾
BlockingQueue是java.util.concurrent包下的接口,用于在多线程环境下实现线程安全的数据传输。并发阻塞队列BlockingQueue解读-腾讯云开发者社区-腾讯云★★★★★并发编程-BlockingQueue阻塞队列 - 知乎BlockingQueue(阻塞队列)详解-CSDN博客【面试题精讲】什么是 BlockingQueue?-腾讯云开发者社区-腾讯云JUC之阻塞队列解读(BlockingQueue)-腾讯云开发者社区-腾讯云。原创 2023-12-08 19:28:00 · 57 阅读 · 0 评论 -
多线程之一:基础概念&三大特性
CPU是计算机的大脑,是负责执行指令的,自身的频率和指令执行的速度非常快,一秒执行的指令大概10^9级别的;内存的速度要比CPU慢上好几个级别,每秒处理的速度大概是10^6的级别的。数据储存在(主)内存中,CPU处理数据需要去内存中取,为了解决效率低下的问题,引入了三级缓存的概念,它是CPU中一块很小的区域——L1比L2快,L2比L3快。CPU处理数据时,首先会去主内存中取,然后将其缓存在CPU Cache中,这样就造成了在多核CPU下数据不可见(不一致)的问题。原创 2023-11-24 19:52:24 · 89 阅读 · 0 评论 -
多线程之二:锁
AQS就是AbstractQueuedSynchronizer抽象类,AQS其实就是JUC包下的一个基类,JUC下的很多内容都是基于AQS实现了部分功能,比如ReentrantLock,ThreadPoolExecutor,阻塞队列,CountDownLatch,Semaphore,CyclicBarrier等等都是基于AQS实现。首先AQS中提供了一个由volatile修饰,并且采用CAS方式修改的int类型的state变量。/***/原创 2023-11-26 19:53:53 · 67 阅读 · 0 评论 -
多线程之三:阻塞队列
目录 一、阻塞队列概述 1. 基本概念 2. 实现原理 3. 使用场景 二、阻塞队列的各种实现 三、ArrayBlockingQueue 3.1 基本使用 3.2 生产者各方法实现原理 3.3 消费者各方法实现原理 3.4 虚假唤醒: 四、LinkedBlockingQueue 五、PriorityBlockingQueue 六、DelayQueue 七、SynchronousQueue 一、阻塞队列概述 在Java并发编程中,阻塞队列(BlockingQueu原创 2023-11-29 12:27:03 · 202 阅读 · 0 评论 -
多线程之四:线程池
Java线程池实现原理及其在美团业务中的实践 - 美团技术团队★★★★★线程池的使用场景-CSDN博客线程池整理汇总-CSDN博客线程池详解-CSDN博客Java线程池(超详细)-CSDN博客百度安全验证1. 什么是线程池开发中,为了执行效率,一些任务需要多线程去完成,而线程本身的创建并销毁往往需要大量的开销,因而引入线程池的概念。一种池化思想。2. 使用场景略。从名字上就可以看出,当前线程池是用于执行定时任务的线程池。Java比较早的定时任务工具是Timer类。原创 2023-11-29 16:43:15 · 122 阅读 · 0 评论 -
多线程之五:并发集合
郑老师:常见的并发集合分为Concurrent系列和CopyOnWrite系列。阻塞队列其实也属于并发集合,不过已经讲过了,再次不再赘述。CopyOnWriteArrayList是一个线程安全的ArrayList。CopyOnWriteArrayList是基于lock锁和数组副本的形式去保证线程安全。在写数据时,需要先获取lock锁,需要复制一个副本数组,将数据插入到副本数组中,将副本数组赋值给CopyOnWriteArrayList中的array。原创 2023-11-30 19:53:19 · 219 阅读 · 0 评论 -
多线程之六:并发工具&异步编程
CountDownLatch,计数器,常用来阻塞主线程、等待被子线程唤醒,或者在子线程中阻塞等待被主线程唤醒。CountDownLatch详解-CSDN博客CountDownLatch是一个同步工具类,用于协调多线程之间的协作。它基于一个计数器,当计数器归零时,等待的所有线程将被释放。基本使用和功能:1)初始化: 创建时传入一个整数值,这个值代表计数器的初始值。2)倒计数: 在需要减少计数的地方调用方法,每次调用会使计数减一。3)阻塞等待: 使用await()方法可以让线程等待直到计数器变为0。原创 2023-12-06 19:50:32 · 744 阅读 · 0 评论 -
Future接口get()方法是阻塞的
以上为源码,以下详细描述。原创 2023-11-30 14:29:13 · 833 阅读 · 0 评论