java并发包
烫手的砖
开发者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
spring线程池的使用示例,测试拒绝任务和任务装饰器
corePoolSize:核心线程数。 maximumPoolSize:最大线程数。表明线程中最多能够创建的线程数量。 keepAliveTime:空闲的线程保留的时间。 unit:空闲线程的保留时间单位。 BlockingQueue workQueue:用于保存等待执行的任务的阻塞队列。可以选择以下几个阻塞队列。 1、ArrayBlockingQueue:是一个基于数组结构的有界阻塞队列,此队列按 FIFO(先进先出)原则对元素进行排序。 2、LinkedBlockingQueue:一个基于链表结构的阻.原创 2022-04-07 22:07:08 · 811 阅读 · 0 评论 -
ThreadLocal使用包括子线程传递实例
1.ThreadLocal的使用主要用于不同线程操作不安全变量时的线程保护 2.ThreadLocal=为Thread提供独有的ThreadLocalMap变量,通过Entry[] table方式存储线程本地变量 3.Thread持有ThreadLocal的引用,所以ThreadLocal需要设置成虚引用避免内存溢出,同时提供删除entry操作避免value值的内存溢出 代码示例 package com.myzy.auth.reetrantlock; public class TestThreadLoca原创 2022-04-06 22:44:22 · 1039 阅读 · 0 评论 -
ReetrantReadWriteLock源码要点(面试必备)
** 1.writeLock ** 只需要判断状态C是否有读锁或者写锁 ** 2.readLock ** 判断是否拿到锁,有一下几点: 是否有写锁 是否有写锁在排队首(为了防止写锁被饿死,因为读锁一般可以获取到锁) 是否达到读锁最大限制 抢锁修改高16位,读锁状态,是否成功? 读写锁使用同一个队列,状态C高16位记录读锁状态也是读锁个数,低16位记录写锁状态 ** * 以上是本人在学习过程中记录的东西,希望对你有用!!!!! ** ...原创 2022-04-04 22:49:52 · 374 阅读 · 0 评论 -
java 线程wait()与notify()和notifyAll做生产者消费者模式
代码如下 package com.myzy.auth.reetrantlock; import java.util.concurrent.atomic.AtomicInteger; /** * 场景介绍: * 一个生产者 120个消费者 * 生产者生产目标是100个,到了100个就不生产了;同时生产者在存在可以卖的茶大于5个同时已经生产了大于10个的情况下可以休息,然后等待消费者的唤醒 * 消费者只要有茶叶都可以买,没有茶叶可以唤醒生产者,然后等待生产,除非生产者已经生产了100个而.原创 2022-03-28 22:21:37 · 236 阅读 · 0 评论 -
使用ReentrantLock+Condition实现的单个生产者多个消费者模式
代码如下 import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * 场景介绍: * 一个生产者 120个消费者 * 生产者生产目标是100个,到了100个就不生产了;同时生.原创 2022-03-27 15:38:43 · 829 阅读 · 0 评论 -
ReenTrantLock简单使用
ReenTrantLock简单使用 /** * @ClassName:MReenTrantLock * @Description:TODO加入锁,保证一次执行,同时也防止并发影响数据有效性 * @Author:ZY * @Date:2019/6/24 0024 22:34 * @Version:1.0 **/ public class MReenTrantLock extends Th...原创 2019-06-24 23:01:19 · 276 阅读 · 0 评论 -
生产消费者同步容器
生产消费者同步容器 利用wait(),notifyAll(),方法交替生产和消费容器内变量,利用同步锁实现同步容器 /** * @ClassName:MyContainer * @Description:TODO使用wait(),notifyAll(),编写生产者消费者容器,get,put方法,2个生产线程 * 10个消费线程 * @Author:ZY * @Date:2019/6/24...原创 2019-06-24 23:55:57 · 180 阅读 · 0 评论
分享