![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JUC并发编程
yuan_boss
网络安全领域知识博主
展开
-
14.异步回调
异步回调Future设计的初衷:对将来的某个事件结果进行建模import java.util.concurrent.CompletableFuture;import java.util.concurrent.ExecutionException;import java.util.concurrent.Future;import java.util.concurrent.TimeUnit;/** * 异步调用:CompletableFuture *异步执行 * 成功回调 * 失败回调原创 2021-07-24 17:26:05 · 48 阅读 · 0 评论 -
13.ForkJoin详解
ForkJoin详解什么是ForkJoinForkJoin在JDK1.7,并行执行任务!提高效率,大数据量!类似于大数据:Map Reduce(把大任务拆分成小任务)ForkJoin特点:工作窃取这个里面维护的都是双端队列,B线程执行完之后不会等待,而是会窃取A的任务执行ForkJoin的操作import java.util.concurrent.RecursiveTask;/** * 求和计算的任务! * * 如何使用ForkJoin * 1.forkjoinpool来执原创 2021-07-24 17:25:11 · 173 阅读 · 0 评论 -
12.Stream流式计算
Stream流式计算什么是流式计算大数据:存储+计算集合、MySQL本质就是存储东西的;计算都应该交给流来操作!/**题目要求:一分钟内完成此题,只能用一行代码实现!*现在有5个用户,筛选:1.ID必须是偶数2.年龄必须大于23岁3.用户名转为大写字母4.只输出一个用户!*/该题目运用到了lambda表达式,链式编程,函数式接口,Stream流式计算import java.util.Arrays;import java.util.List;/** * 题目要求:一分原创 2021-07-24 17:23:05 · 74 阅读 · 0 评论 -
10.彻底搞懂Java线程池
彻底搞懂Java线程池文章目录彻底搞懂Java线程池三大方法三大方法代码实现7大参数三大方法源码分析七大参数图解:手动创建一个线程池4种拒绝策略小结和拓展彻底搞懂线程池只需要知道线程池中:三大方法、7大参数,4中拒绝策略池化技术程序的运行,本质:占用系统的资源!优化资源的使用!==>池化技术线程池,连接池,对象池池化技术:事先准备好资源,有人要用,就来我这里拿,用完之后还给我线程池的好处:1.降低资源的消耗2.提高响应速度3.方便管理线程复用、可以控制最大并发数、管理线程三大原创 2021-07-23 14:05:20 · 1442 阅读 · 0 评论 -
8.读写锁
Java之读写锁ReentrantReadWriteLock类的使用,这个ReentrantReadWriteLock类是ReadWriteLock的实现类代码实现import java.util.HashMap;import java.util.Map;import java.util.concurrent.locks.ReentrantReadWriteLock;/** * 独占锁(写锁)一次只能被一个线程占有 * 共享锁(读锁)多个线程可以同时占有 * ReentrantRe原创 2021-07-22 16:34:15 · 65 阅读 · 0 评论 -
9.阻塞队列
阻塞队列队列:先进先出(FIFO)阻塞队列:BlockingQueue:BlockingQueue不是新东西什么情况下我们会使用阻塞队列:多线程并发处理,线程池!学会使用队列添加、移除四组API方式抛出异常有返回值,不会抛出异常阻塞等待超时等待添加addoffer()put()offer(,)移除removepoll()take()poll(,)检查队首元素elementpeek––1.抛出异常 /**原创 2021-07-22 16:32:13 · 44 阅读 · 0 评论 -
7.JUC三大常用辅助类
JUC三大常用辅助类文章目录JUC三大常用辅助类一、CountDownLatch代码实现原理:二、 CyclicBarrier代码实现实现原理三、Semaphore代码实现原理一、CountDownLatch这个类可以简单理解为减法计数器代码实现import java.util.concurrent.CountDownLatch;//计数器(减法)public class CountDownLatchDemo { public static void main(String[] a原创 2021-07-22 12:00:09 · 105 阅读 · 2 评论 -
6.Callable
Callable1.有返回值(返回值类型与Callable接口的泛型一样)2.可以抛出异常3.方法不同,run()/call()代码测试import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;public class CallableTest { public static void main原创 2021-07-22 11:56:17 · 109 阅读 · 0 评论 -
3.消费者生产者问题防止虚假唤醒
消费者生产者问题防止虚假唤醒文章目录消费者生产者问题防止虚假唤醒生产者和消费者问题Synchronized版JUC版的生产者与消费者代码实现Condition实现精准的通知与唤醒线程代码实现输出结果生产者和消费者问题Synchronized版public class A { public static void main(String[] args) { Data data = new Data(); new Thread(()->{ for (int i原创 2021-07-21 18:58:40 · 105 阅读 · 0 评论 -
2.Lock锁(重点)
2.Lock锁(重点)文章目录2.Lock锁(重点)传统synchronized代码实现Lock锁synchronized与Lock锁区别传统synchronized//真正的多线程开发,公司中的开发,要降低耦合性//线程就是一个单独的资源类,没有任何附属操作(所以使用Lambda表达式)// 1.属性、方法代码实现public class SaleTicketDemo01 { public static void main(String[] args) { //并原创 2021-07-21 18:55:05 · 162 阅读 · 0 评论 -
1.线程、进程、并发编程
线程、进程、并发编程文章目录线程、进程、并发编程进程线程线程有哪几个状态?wait/sleep区别Java真的可以开启线程吗原因--源码并发编程并发(多线程操作同一个资源)并行(多个人一起行走)实质:充分利用CPU的资源进程 它是一个程序,如QQ.exe,Music.exe的集合,一个进程往往可以包含多个线程,至少包含一个 Java默认有2个线程,main(主线程),GC(守护线程)线程 开了一个Typora,写字,自动保存这两个功能都是同时实现的,他们是两个线程线程有哪几个状态?原创 2021-07-21 18:51:32 · 46 阅读 · 0 评论