![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
零度-0C
这个作者很懒,什么都没留下…
展开
-
JAVA(五)ReentrantLock(重入锁)+Condition 生产者消费者模型
重点:ReentrantLock+Condition,await、signal方法 VS synchronized+Object的wait、notify 1. ReentrantLock对比snchronized ReentrantLock支持公平锁和非公平锁、可中断。 // 非公平锁(默认) final ReentrantLock lock = new ReentrantLock();...原创 2019-05-14 16:56:53 · 421 阅读 · 0 评论 -
JAVA(二)集合类
1.Collection 和 Collections 首先要明确的是,Collection 和 Collections是两个不同的概念。Collection是一个接口,所有的集合类(除Map外)都要继承(实现)自该接口。它提供了对集合对象进行基本操作的通用接口方法。Collections是一个包装类,它包含有各种有关集合操作的静态多态方法。(Collections是一个工具类,不...转载 2019-05-09 21:20:54 · 118 阅读 · 0 评论 -
JAVA(三)大小堆
PriorityQueue(优先队列),一个基于优先级堆的无界优先级队列。 实际上是一个堆(不指定Comparator时默认为最小堆),通过传入自定义的Comparator函数可以实现大顶堆。 PriorityQueue<Integer> minHeap = new PriorityQueue<Integer>(); //小顶堆,默认容量为11 PriorityQue...原创 2019-05-09 21:38:06 · 816 阅读 · 0 评论 -
JAVA(四)线程池
1. 什么是线程池? 线程池是指在初始化一个多线程应用程序过程中创建一个线程集合,然后在需要执行新的任务时重用这些线程而不是新建一个线程。线程池中线程的数量通常完全取决于可用内存数量和应用程序的需求。然而,增加可用线程数量是可能的。线程池中的每个线程都有被分配一个任务,一旦任务已经完成了,线程回到池子中并等待下一次分配任务。 2. 线程池作用 基于以下几个原因在多线程应用程序中使用线程是必...原创 2019-05-13 12:58:10 · 93 阅读 · 0 评论