![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
yzy并发
叶子猿的并发
nzch
这个作者很懒,什么都没留下…
展开
-
java并发编程实战-40-线程之间的通信Exchanger
场景:一个线程去网易抓取,一个线程去百度抓取,去比对,设置超时时间。 代码: package com.roocon.thread.tb7; import java.util.concurrent.Exchanger; public class Demo { public void a (Exchanger<String> exch) {//0.作为参数传入 System...原创 2019-09-27 08:34:37 · 139 阅读 · 0 评论 -
java并发编程实战-38-并发工具类CyclicBarrier详解
CyclicBarrier 屏障: 一个简单的功能: package com.roocon.thread.tb5; import java.util.Random; import java.util.concurrent.CyclicBarrier; public class DemoMy { Random random = new Random(); publ...原创 2019-09-26 10:58:17 · 117 阅读 · 0 评论 -
java并发编程实战-22-AbstractQueuedSynchronizer(AQS)详解----超级重要-----二周目
总结: XXXState(int):以原子的方法来操作int值,获得同步器。 内部没有同步的接口,而是定义了acquireInterruptinly(int)方法。 支持独占和共享模式,或者两者同时支持。 网址:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh 看ReentrantLock的源码,我们关注的就是lock和unl...原创 2019-09-19 20:26:09 · 245 阅读 · 0 评论 -
并发完全知识点目录--yzy
1.condition 使用codition循环打印:https://blog.csdn.net/qq_28764557/article/details/101344350 使用condition实现一个有界的队列:https://blog.csdn.net/qq_28764557/article/details/104700390 condition的原理解析:https://blog.c...原创 2020-03-07 16:17:25 · 110 阅读 · 0 评论 -
java并发编程实战-33-使用condition的源码解析
先看下源码的结构: 可见是sync的newCondition。 abstract static class Sync extends AbstractQueuedSynchronizer {} 可见: final ConditionObject newCondition() { return new ConditionObject(); }...原创 2020-03-06 18:08:55 · 167 阅读 · 0 评论 -
java并发编程实战-32-使用condition重写wait和notify并实现一个有界的队列
package com.roocon.thread.ta7; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class Tmall2 { private ...原创 2020-03-06 17:56:28 · 169 阅读 · 0 评论 -
java并发编程实战-56-longAddr--二周目
如何改进的。 多个线程竞争多个值。抢占不到进行扩容。base是5 分为3和2 核心方法是: public void add(long x) { Cell[] as; long b, v; int m; Cell a;//Cell只维护了一个long的value值。 if ((as = cells) != null || !casBas...原创 2019-10-25 16:34:19 · 325 阅读 · 0 评论 -
java并发编程实战-19-原子类------二周目
使用原子类更新数组: private int [] s = {2,1,4,6}; AtomicIntegerArray a = new AtomicIntegerArray(s); a.getAndIncrement(2); a.getAndAdd(2, 10); ----------- 更新引用类型: AtomicReference<User> user =...原创 2019-10-25 16:09:21 · 96 阅读 · 0 评论 -
java并发编程实战-50-简单实现消息队列----二周目(没复习没有价值)
发布订阅:生产者生产消息到队列,消费者去队列订阅。 应用场景: 1.高速对低速 2.邮件问题,200000000个邮件放在队列 3.流量削峰 哪些队列: --------------------------不实现了,自己研究源码-------下载源码的地址可以复习下----------------------- ...原创 2019-10-08 10:54:09 · 123 阅读 · 0 评论 -
java并发编程实战-49-Java中的阻塞队列原理与使用-基于数组的--------二周目
生产者消费者得改造: 这个队列支持优先级排序并且是无界的阻塞队列。 带延时功能的。 只有put和take是阻塞的。 代码: package com.roocon.thread.tc9; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; public...原创 2019-10-08 10:39:25 · 90 阅读 · 0 评论 -
java并发编程实战-53-Executor框架--------------二周目
底层代码 延时的线程池: package com.roocon.thread.td5; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.con...原创 2019-10-08 12:50:49 · 114 阅读 · 0 评论 -
java并发编程实战-52-线程池的原理与使用-----二周目
package com.roocon.thread.td4; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy; i...原创 2019-10-08 11:58:02 · 100 阅读 · 0 评论 -
java并发编程实战-46-同步容器和并发容器-----------------二周目
线程不安全 线程安全性能差 性能差。 继承的差不多的。 一个加锁一个不加锁 集合将Arraylist转化为线程安全的也是加锁的。 package com.roocon.thread.tc7; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; public clas...原创 2019-09-29 17:38:25 · 95 阅读 · 0 评论 -
java并发编程实战-44-Future源码解析----cas---------------二周目---太具体的原理就不看了
Future的源码 这个东西存在的意义就是线程去干 我去拿结果可以 public FutureTask(Callable<V> callable) {//错误的东西但是好理解FutureTask是Runnable Callable是run 里面是run的实现 if (callable == null) throw new NullP...原创 2019-09-28 11:25:51 · 112 阅读 · 1 评论 -
java并发编程实战-42-提前完成任务的应用类FutureTask----二周目
拿小票取蛋糕,蛋糕做好了通过future去获取。 FutureTask最后也是继承的Runnable Callable内部只有一个call方法 package java.util.concurrent; @FunctionalInterface public interface Callable<V> { /** * Computes a result...原创 2019-09-28 09:39:54 · 73 阅读 · 0 评论 -
java并发编程实战-45-Fork/join框架---二周目
单核的时候路子转烤烧饼肯定没有一个一个烤烧饼快,因为切换消耗资源 现在是多核了就没有这个问题了。 多核是多个火炉,但是一个烧饼其他的火苗就全浪费了。 Fork/join就是将一个烧饼切位四份,多核cpu,多个火苗。 烤完之后四份合为一个。 ------ ------- 计算1+2+3+4+5+。。。。。。。+100 分开分为50个小任务。 继承关系图。 pac...原创 2019-09-29 16:36:29 · 120 阅读 · 0 评论 -
java并发编程实战-37-并发工具类CountDownLatch详解---二周目
案例:使用多线程完成累计求和的过程: 有几行就有几个线程累计求和。 线程的基本套路就是 一个实体的Demo类,里面是sync的方法里面是要实现的逻辑。 一个类继承runnable,构造函数传入实体类的实例,不断的去调用实体类的sync方法。 main函数 ,new实体类,new Thread(new runnanle(实体类)).start(); package com.ro...原创 2019-09-26 09:13:02 · 143 阅读 · 0 评论 -
java并发编程实战-30-通过生产者消费之模型了解等待唤醒机制---二周目
消费者等待生产者生产产品,造多了就不造了,少了就去生产。 抽取对象:消费者 生产者 电商 天猫: package com.roocon.thread.ta7; public class Tmall { private int count; public final int MAX_COUNT = 10; public synchronized void push ()...原创 2019-09-25 11:17:51 · 108 阅读 · 0 评论 -
java并发编程实战-31-Condition的使用与原理------二周目
Condition:notify不能指定叫醒什么线程,condition可以。也是依赖于aqs的。 Condition是接口。 快捷键:ctrl+h alt+7 两个实现类: 第二个是aqs的内部类。 三个线程按照顺序执行:123 123 123 123 用wait和notify写: 线程Thread的写法实战 第一种: class A implements Runn...原创 2019-09-25 08:55:36 · 147 阅读 · 0 评论 -
并发得面试问题实战
1.不断得打印123 123 123:代码yzy得ta8,注意先搭架子再说别的。 注意这个架子是必须得。 注意不能在加锁得方法里面while true得这样就永远就解不开锁了。 用wait和notify的模板的: package thread.ta8; public class DemoMy { public synchronized void a(){ ...原创 2020-02-23 12:28:57 · 120 阅读 · 0 评论 -
java并发编程实战-29-wait和notify---二周目
多线程的通信: 方法的执行在栈帧完成的。 package com.roocon.thread.ta6; import com.roocon.thread.t5.Singleton2; public class Demo { private volatile int signal; public void set (int value) { this.signal = ...原创 2019-09-17 10:57:34 · 151 阅读 · 0 评论 -
java并发编程实战-21-手动写一个可重入锁---二周目
这个代码保证value++的原子性。 自己实现一把锁: 为什么不支持重入?这个是mylock老的代码。这个while当作if去解读就可以了。 解锁了。 多线程去执行 在Demo中测试重入。 package com.roocon.thread.ta1; import java.util.concurrent.locks.Lock; import java.util.co...原创 2019-09-17 10:13:06 · 120 阅读 · 0 评论 -
java并发编程实战-20-Lock接口的认识和使用-------------二周目
线程的安全性问题解决: voliate只能是可见性 ;AtomicInteger只是原子的; Lock接口 Lock接口的实现类和方法: 多个线程并发拿锁抢占资源是无法终断的使用这个方法可以中断。 tryLock是非阻塞的获取锁。 公平和非公平锁。 看其实现类: package com.roocon.thread.t9; public class Sequ...原创 2019-09-17 09:16:54 · 122 阅读 · 1 评论 -
java并发编程实战-14-15-synchronized----引申知识偏向锁和轻量级锁------二周目
synchronized: 内置锁:每一个对象都可以用来成为锁,就是内置锁。 synchronized方法上就是当前的this对象当前类的实例。 synchronized修饰 普通方法 静态方法 (当前的class字节码对象) 修饰代码块(括号里面的对象或者类的字节码对象)。 --------------------------t4-------...原创 2019-09-16 12:06:24 · 113 阅读 · 0 评论 -
java并发编程实战-17-理解自旋锁-死锁-重入锁----二周目
重入锁: synchronized加到方法上锁的就是当前类的实例。 package com.roocon.thread.t6; public class Demo { public synchronized void a () { System.out.println("a"); // b(); try { Thread.sleep(1000); } cat...原创 2019-09-16 08:38:38 · 148 阅读 · 0 评论 -
java并发编程实战---36--ThreadLocal--二周目
ThreadLocal: 代码演示: package com.roocon.thread.tb3; public class Demo { private ThreadLocal<Integer> count = new ThreadLocal<Integer>() { protected Integer initialValue() { return...原创 2019-09-12 16:57:42 · 103 阅读 · 0 评论 -
java并发编程实战---25---26---27--读写锁-一周目
读写锁解读:https://www.jb51.net/article/145099.htm package com.roocon.thread.ta3; import java.util.HashMap; import java.util.Map; import java.util.concurrent.locks.Lock; import java.util.concurrent.lock...原创 2019-09-07 13:03:42 · 152 阅读 · 0 评论