摘要: 一、Condition接口 1、Condition接口的常用方法介绍 Condition的使用模板:Condition的获取必须通过Lock的newCondition方法,表示Condition对象与该锁关联,一般讲Condition对象作为成员变量,调用上面的await方法之后当前线程才会释放锁并阅读全文
posted @ 2019-04-17 09:23 风沙迷了眼 阅读(134) 评论(0) 编辑
摘要: 一、读写锁 1、初识读写锁 a)Java中的锁——Lock和synchronized中介绍的ReentrantLock和synchronized基本上都是排它锁,意味着这些锁在同一时刻只允许一个线程进行访问,而读写锁在同一时刻可以允许多个读线程访问,在写线程访问的时候其他的读线程和写线程都会被阻塞。阅读全文
posted @ 2019-04-17 09:18 风沙迷了眼 阅读(9) 评论(0) 编辑
摘要: 上一篇Java中的队列同步器AQS 一、Lock接口 1、Lock接口和synchronized内置锁 a)synchronized:Java提供的内置锁手机老虎机游戏下载,Java中的每个对象都可以用作一个实现同步的锁(内置锁或者监视器Monitor),线程在进入同步代码块之前需要或者这把锁,在退出同步代码块会阅读全文
posted @ 2019-04-14 22:36 风沙迷了眼 阅读(119) 评论(0) 编辑
摘要: 一、AQS概念 1、队列同步器是用来构建锁或者其他同步组件的基础框架,使用一个int型变量代表同步状态,通过内置的队列来完成线程的排队工作。 2、下面是JDK8文档中对于AQS的部分介绍 总结来说就是: ①子类通过继承AQS并实现其抽象方法来管理同步状态,对于同步状态的更改通过提供的getState阅读全文
posted @ 2019-04-13 22:18 风沙迷了眼 阅读(133) 评论(1) 编辑
摘要: 首先简单介绍一下volatile的应用,volatile作为Java多线程中轻量级的同步措施,保证了多线程环境中“共享变量”的可见性。这里的可见性简单而言可以理解为当一个线程修改了一个共享变量的时候,另外的线程能够读到这个修改的值。下面就是volatile的具体定义和实现原理。上一篇Java内存模型阅读全文
posted @ 2019-03-25 18:22 风沙迷了眼 阅读(25) 评论(0) 编辑
摘要: 一、版本1—有序数组中只出现一次的数字 1、题目描述 给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。 示例 1: 示例 2: 注意: 您的方案应该在 O(log n)时间复杂度和 O(1)空间复杂度中运行。 2、思路 a)使用线性时间异或运算: b)实现规定阅读全文
posted @ 2019-03-20 22:53 风沙迷了眼 阅读(19) 评论(0) 编辑
摘要: 一、题目描述 给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 示例 1: 示例 2: 要求: ①给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗?阅读全文
posted @ 2019-03-20 20:38 风沙迷了眼 阅读(30) 评论(0) 编辑
摘要: 一、题目描述 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 二、思路 三、代码实现阅读全文
posted @ 2019-03-20 13:24 风沙迷了眼 阅读(19) 评论(0) 编辑
摘要: 一、题目描述 你有一个单词列表 words 和一个模式 pattern,你想知道 words 中的哪些单词与模式匹配。如果存在字母的排列 p ,使得将模式中的每个字母 x 替换为 p(x) 之后,我们就得到了所需的单词,那么单词与模式是匹配的。(回想一下,字母的排列是从字母到字母的双射:每个字母映射阅读全文
posted @ 2019-03-19 23:17 风沙迷了眼 阅读(16) 评论(0) 编辑
摘要: 一、简单选择排序 1、简单选择排序的思想是这样的:首先,找到数组中最小的元素,其次,将它和数组中的第一个元素交换位置。再次,在剩下的元素中寻找最小的元素,然后将它和数组中第二个元素交换位置,这样往复进行,知道到数组中最后一个元素的时候就变成了有序数组。 2、简单选择排序算法:对于长度为N的数组,需要阅读全文
posted @ 2019-03-15 16:09 风沙迷了眼 阅读(15) 评论(0) 编辑
博聚网