java并发编程
并发编程
妄想先生
这个作者很懒,什么都没留下…
展开
-
常用的分布式事务解决方案
常用的分布式事务解决方案转载 2021-04-05 15:21:28 · 66 阅读 · 0 评论 -
可重入锁(递归锁)+LockSupport+AQS源码分析
可重入锁(递归锁)+LockSupport+AQS源码分析转载 2021-02-12 22:13:54 · 166 阅读 · 1 评论 -
从ReentrantLock理解AQS的原理及应用总结
1转载 2021-02-12 22:08:26 · 99 阅读 · 0 评论 -
18、彻底玩转单例模式
18、彻底玩转单例模式饿汉式// 饿汉式单例public class Hungry { // 可能会浪费空间 private byte[] data1 = new byte[1024*1024]; private byte[] data2 = new byte[1024*1024]; private byte[] data3 = new byte[1024*1024]; private byte[] data4 = new byte[1024*1024];原创 2021-02-12 22:04:18 · 132 阅读 · 2 评论 -
14、ForkJoin
14、ForkJoinForkJoin 在 JDK 1.7 , 并行执行任务!提高效率。大数据量!大数据:Map Reduce (把大任务拆分为小任务)ForkJoin 特点:工作窃取这个里面维护的都是双端队列** * 求和计算的任务! * 3000 6000(ForkJoin) 9000(Stream并行流) * // 如何使用 forkjoin * // 1、forkjoinPool 通过它来执行 * // 2、计算任务 forkjoinPool.execute(Fork原创 2021-02-11 22:00:40 · 213 阅读 · 0 评论 -
12、四大函数式接口
12、四大函数式接口函数式接口: 只有一个方法的接口@FunctionalInterfacepublic interface Runnable { public abstract void run();} // 泛型、枚举、反射// lambda表达式、链式编程、函数式接口、Stream流式计算// 超级多FunctionalInterface// 简化编程模型,在新版本的框架底层大量应用!// foreach(消费者类的函数式接口)/** * Function 函数型接口, 有原创 2021-02-10 20:40:13 · 70 阅读 · 1 评论 -
10阻塞队列 11、线程池
10、阻塞队列什么情况下我们会使用 阻塞队列:多线程并发处理,线程池!方式抛出异常有返回值,不抛出异常阻塞 等待超时等待添加addoffer()put()offer(,)移除removepoll()take()poll(,)检测队首元素elementpeek--public class Test { public static void main(String[] args) throws InterruptedExcept原创 2021-02-10 20:28:58 · 111 阅读 · 1 评论 -
9读写锁
ReadWriteLock/** * 独占锁(写锁) 一次只能被一个线程占有 * 共享锁(读锁) 多个线程可以同时占有 * ReadWriteLock * 读-读 可以共存! * 读-写 不能共存! * 写-写 不能共存! */public class ReadWriteLockDemo { public static void main(String[] args) { MyCache myCache = new MyCache(); //原创 2021-02-10 19:32:44 · 91 阅读 · 0 评论 -
6、集合类不安全
List 不安全//List<String> list = new ArrayList<>();// java.util.ConcurrentModificationException 并发修改异常!public class ListTest { public static void main(String[] args) { // 并发下 ArrayList 不安全的吗,Synchronized; /** * 解决方案原创 2021-02-10 17:54:34 · 95 阅读 · 0 评论 -
8锁现象
5、8锁现象如何判断锁的是谁!永远的知道什么锁,锁到底锁的是谁!/** * 8锁,就是关于锁的8个问题 * 1、标准情况下,两个线程先打印 发短信还是 打电话? 1/发短信 2/打电话 * 2、sendSms延迟4秒,两个线程先打印 发短信还是 打电话? 1/发短信 2/打电话 */public class Test1 { public static void main(String[] args) { Phone phone = new Phone();原创 2021-02-09 22:03:18 · 157 阅读 · 0 评论 -
生产者和消费者问题
4、生产者和消费者问题生产者和消费者问题 Synchronized 版/** * 线程之间的通信问题:生产者和消费者问题! 等待唤醒,通知唤醒 * 线程交替执行 A B 操作同一个变量 num = 0 * A num+1 * B num-1 */public class A { public static void main(String[] args) { Data data = new Data(); new Thread(()->原创 2021-02-09 21:28:11 · 111 阅读 · 0 评论 -
JUC基础
1、什么是JUCjava.util 工具包、包、分类业务:普通的线程代码 ThreadRunnable 没有返回值、效率相比入 Callable 相对较低!2、线程和进程进程:一个程序,QQ.exe Music.exe 程序的集合;一个进程往往可以包含多个线程,至少包含一个!Java默认有几个线程? 2 个 mian、GC线程:开了一个进程 Typora,写字,自动保存(线程负责的)对于Java而言:Thread、Runnable、CallableJava 真的可以开启线程吗? 开不原创 2021-02-09 20:36:12 · 177 阅读 · 1 评论 -
*8* 常用的辅助类
八 常用的辅助类8.1、CountDownLatch原创 2021-02-09 16:26:08 · 115 阅读 · 0 评论