并发
《翀》
赠人玫瑰,手有余香!
展开
-
Amino框架
Amino框架:https://blog.csdn.net/weixin_30855761/article/details/96532657原创 2021-07-19 09:27:17 · 224 阅读 · 0 评论 -
Disruptor框架
Java并发编程框架Disruptor: https://zhuanlan.zhihu.com/p/148441085 并发框架Disruptor译文: https://ifeve.com/disruptor/原创 2021-07-19 09:25:43 · 171 阅读 · 0 评论 -
juc学习备忘录--线程调度 ScheduledExecutorService
package com.wyz.juc; import java.util.Random; import java.util.concurrent.*; /** * 线程调度 ScheduledExecutorService * 一个 ExecutorService,可安排在给定的延迟后运行或定期执行的命令。 * * ScheduledExecutorService newScheduledPool() :创建固定大小的线程,可以延迟或定时的执行任务。 * * @author Wang原创 2020-05-23 23:11:48 · 155 阅读 · 0 评论 -
juc学习备忘录--线程八锁
package com.wyz.juc; /** * 线程八锁 * 题目:判断打印的“one" or ”two“? * 1. 两个普通同步方法,两个线程,标准打印,打印? //One Two * 2.新增Tread.sleep()给getOne 打印? //One Two * 3.新增普通的getThree 打印? //Three One Two * 4.两个普通的同步方法,两个NumberDemo对象,打印? //Two One * 5.原创 2020-05-23 23:11:29 · 97 阅读 · 0 评论 -
juc学习备忘录--线程池
package com.wyz.juc; import java.util.ArrayList; import java.util.List; import java.util.concurrent.*; /** * 线程池:提供了一个线程队列,队列中保存着所有等待状态的线程。避免了创建与销毁额外开销,提高了响应的速度 * * 线程池的体系的结构: * java.util.concurrent.Executor: 负责线程的使用与调度的根接口 * |--**ExecutorSer原创 2020-05-23 23:10:37 · 173 阅读 · 0 评论 -
juc学习备忘录--交替打印
package com.wyz.juc; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * 交替打印的面试题: * 编写一个程序,开启三个线程,这三个线程的ID分别是A、B、C , * 每个线程将自己的ID在屏幕上打印10遍,要求输出的结果必须按顺序显示。 * 如:AB原创 2020-05-23 23:10:19 · 155 阅读 · 0 评论 -
juc学习备忘录--ReadWriteLock
package com.wyz.juc; import java.util.Random; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; /** * 读写锁 * 1.ReadWriteLock:读写锁 * 写写/读写 需要“互斥” * 读读 不需要“互斥” * <p> * ReadWriteLock 维护了一对原创 2020-05-23 23:12:00 · 132 阅读 · 0 评论 -
juc学习备忘录10--使用Lock 方式实现生产者消费者案例
package com.wyz.juc; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * 使用 Lock 替换synchronized 实现生产者和消费者 * * Condition * Condition 接口描述了可能会与锁有关联的条件变量。这些变量在用 *原创 2020-05-23 23:04:17 · 166 阅读 · 0 评论 -
juc学习备忘录9--ForkJoinPool
package com.wyz.juc; import org.junit.Test; import java.time.Duration; import java.time.Instant; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; import java.util.concurrent.RecursiveTask; import java.util.stream.LongSt原创 2020-05-23 22:59:41 · 131 阅读 · 0 评论 -
juc学习备忘录8 --显示锁 Lock
package com.wyz.juc; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * 1.用于解决多线程安全问题的方式: * synchronized: * 1.同步代码块 * 2.同步方法 * <p> * jdk1.5后 * 3.同步锁 Lock * 注意:是一个显示的锁,需要通过lock()方法上锁,必须通过unlock()方法原创 2020-05-23 22:58:34 · 134 阅读 · 0 评论 -
juc学习备忘录7--等待唤醒机制
package com.wyz.juc; /** * 生产者和消费者案例 * * 等待唤醒机制 * * @author WangChong */ public class TestProductorAndConsumer { public static void main(String[] args) { Clerk clerk = new Clerk(); Productor productor = new Productor(clerk);原创 2020-05-23 22:56:23 · 124 阅读 · 0 评论 -
juc学习备忘录6--模拟 CAS算法
package com.wyz.juc; import java.util.Random; /** * 模拟 CAS算法 * @author WangChong */ public class TestCompareAndSwap { public static void main(String[] args) { final CompareAndSwap cas = new CompareAndSwap(); for (int i = 0; i <原创 2020-05-23 22:55:04 · 149 阅读 · 0 评论 -
juc学习备忘录5--ConcurrentHashMap 锁分段机制
package com.wyz.juc; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; /** * 提供了设计用于多线程上下文中的 Collection 实现: * ConcurrentHashMap、ConcurrentSkipLi原创 2020-05-23 22:52:59 · 136 阅读 · 0 评论 -
juc 学备忘录4--CountDownLatch
package com.wyz.juc; import java.util.concurrent.CountDownLatch; /** * CountDownLatch : 闭锁,在完成某些运算时,只有其他所有线程的运算全部完成,当前运算才继续执行。 * * Java 5.0 在 java.util.concurrent 包中提供了多种并发容器类来改进同步容器 * 的性能。 * CountDownLatch 一个同步辅助类,在完成一组正在其他线程中执行的操作 * 之前,它允许一个或原创 2020-05-23 22:51:13 · 107 阅读 · 0 评论 -
juc 学备忘录3--Callable
package com.wyz.juc; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; /** * 1.创建执行线程的方式三:实现Callable 接口。 * 相较于实现Runnable 接口的方式,方法可以有返回值,并且可以抛出异常。 * 2.执行Callable 方式,需要FutureTas原创 2020-05-23 22:50:17 · 96 阅读 · 0 评论 -
juc 学备忘录2--原子变量
package com.wyz.juc; import java.util.concurrent.atomic.AtomicInteger; /** * 1. i++的原子性问题 * int i = 10; * i = i++; * <p> * 底层操作: * int temp = i; * i = i+1; * i = temp; * 结论:i++ 的操作实际上分为三个步骤 “读-改-写” * 2. 原子变量: jdk1.5 后java.util.concurrent.原创 2020-05-23 22:48:54 · 126 阅读 · 0 评论 -
volatile、CAS、Atomic
1.volatile:https://mp.weixin.qq.com/s/2srKmbZlgmUuuT7kCrL0RQ 2.CAS和Atomic:https://mp.weixin.qq.com/s?__biz=MzU0MDEwMjgwNA==&mid=2247487563&idx=1&sn=2ace9476a499c388d04056bf135e48ee&chksm=fb3f09b0cc4880a66a2e178813658342036557be8357ab85f5a7c原创 2020-05-15 11:09:39 · 129 阅读 · 0 评论 -
CountDownLatch 、cyclicbarrier、Semaphore
https://www.cnblogs.com/Lee_xy_z/p/10470181.html原创 2020-05-15 11:00:20 · 122 阅读 · 0 评论