自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (1)
  • 收藏
  • 关注

原创 JUC-并发编程10-各种锁名称整理

1、公平锁/非公平锁公平锁,是指按照线程申请的顺序获取锁。非公平锁,是指不是按照线程申请的顺序获取锁,有可能后申请的线程反而先获取到锁,假如先来的线程一直获取不到锁,会造成锁饥饿现象。2、可重入锁是指一个线程获取锁之后再尝试获取锁时会自动获取锁,可重入锁的优点是避免死锁。ReentrantLock和synchronized都是可重入锁。3、独享锁/共享锁独享锁,是指锁一次只能被一个线程持有。共享锁,是指锁一次可以被多个线程持有。ReentrantLock和synchronized都

2020-07-20 17:11:28 280

原创 JUC-并发编程-09-阻塞队列BlockingQueue之-DelayQueue

DelayQueue队列中每个元素都有个过期时间,并且队列是个优先级队列,当从队列获取元素时候,只有过期元素才会出队列。1、继承结构从继承体系可以看到,DelayQueue实现了BlockingQueue,所以它是一个阻塞队列。另外,DelayQueue还组合了一个叫做Delayed的接口,DelayQueue中存储的所有元素必须实现Delayed接口。那么,Delayed是什么呢?...

2020-07-20 16:31:52 195

原创 JUC-并发编程-08-阻塞队列BlockingQueue之-PriorityBlockingQueue

PriorityBlockingQueue是一个支持优先级的无界阻塞队列,直到系统资源耗尽。默认情况下元素采用自然顺序升序排列。也可以自定义类实现compareTo()方法来指定元素排序规则,或者初始化PriorityBlockingQueue时,指定构造参数Comparator来对元素进行排序。但需要注意的是不能保证同优先级元素的顺序。PriorityBlockingQueue也是基于最小二叉堆实现,使用基于CAS实现的自旋锁来控制队列的动态扩容,保证了扩容操作不会阻塞take操作的执行。我们在数据结构地

2020-07-13 22:10:12 256

原创 JUC-并发编程-09-阻塞队列BlockingQueue之LinkedBlockingQueue

LinkedBlockingQueue和ArrayBlockingQueue都是BlockingQueue的实现,都是阻塞队列。本期将学习LinkedBlockingQueue。1、继承关系2、属性介绍 static class Node<E> { //存放数据 E item; //下一个指针 所以说是单向链表 Node<E> next; Node(E x) { item = x; } } //聊.

2020-07-09 16:34:30 172

原创 JUC-并发编程-08-阻塞队列BlockingQueue之-ArrayBlockingQueue

1、概述我们在并发编程中,通常需要线程安全的队列。线程安全的队列分为两种:阻塞队列,使用锁来实现 非阻塞队列,使用CAS来实现。阻塞队列在实际应用中非常广泛,许多消息中间件中定义的队列,通常就是一种“阻塞队列”。其使用场景一般是在 “生产者-消费者” 模式中,用于线程之间的数据交换或系统解耦。“生产者-消费者”这种模式中,“生产者” 和 “消费者” 是相互独立的,两者之间的通信需要依靠一个队列。这个队列就是要说的阻塞队列。引入“阻塞队列”的最大好处就是解耦,在软件工程中,“高内聚,低耦合”是进行

2020-07-08 12:11:20 202

原创 JUC-并发编程-07-AtomicInteger源码分析

在多线程编程下,原子类操作必不可少。在juc下面也有为我们提供。如下图:本期以atomicInteger为例,学习源码。1、继承关系从继承关系来看,是没有什么特殊操作的,那么他是如何保证原子操作的。我们下面继续看。首先介绍一下原子操作:原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何线程上下文切换。原子操作可以是一个步骤,也可以是多个操作步骤,但是其顺序不可以被打乱,也不可以被切割而只执行其中的一部分,将整个操作视作一个整体是原子.

2020-07-07 15:25:36 190

原创 JUC-并发编程-06-HashMap与CurrentHashMap

本期学习hashMap与currentHashMap一个是我们在单线程的常用的集合框架,但是对于多线程的情况下就不在适用,所以juc下,有个CurrentHashMap。两个比较学习。后面再做个总结。本次学习是基于1.81、HashMap1.1 数据结构1.1.1 继承关系是Map接口的具体实现。1.1.2 属性介绍//默认初始容量-必须为2的幂static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;//最大容量,如

2020-07-06 12:11:07 553

单片机计算器

简述单片机的计算器的代码和仿真文件。便于学生下载学习。

2015-12-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除