摘要: 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。 解题思路: 首先通过一次遍历,获取所有元素的异或值;计算异或值中的一个值是1的位,这个位就是答案中两个数字的不同之处;利用这个位,在于求部分 阅读全文
posted @ 2020-11-13 20:43 lippon 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 闭锁:CountDownLatch 使用场景 当前线程需要等待若干条线程执行完毕后,才能继续执行的情况。 也可以是若干个步骤执行完毕后的情况。 使用方法 初始化闭锁的时候,填入计数值,然后等待其他线程或者步骤对计数值进行操作减减。当计数值变为0的时候,线程就会从闭锁的await()方法处继续执行。 阅读全文
posted @ 2020-11-13 10:58 lippon 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 锁的作用 控制多个线程访问共享资源。线程协作 Lock接口 特点 与synchronized类似的同步功能,只是需要显式地获取和释放锁。缺少隐式获取锁的便捷性。拥有锁获取与释放的可操作性、可中断的获取锁以及超时获取锁等多种同步特性。可扩展性好。尝试非阻塞地获取锁:如果当前时刻锁没有被占用,则获得锁。 阅读全文
posted @ 2020-11-13 10:24 lippon 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 为什么需要线程间通信 让线程之间合作,提高运行效率。 volatile和synchronized关键字 实现原理 这两个方式都是采用共享内存的方式进行通信,通过同步机制保证数据可见性和排他性。 特点 本质是数据共享。不能特定地传给某个线程数据,需要程序员自己编写逻辑。数据在各个线程的更新顺序由操作系 阅读全文
posted @ 2020-11-13 08:49 lippon 阅读(71) 评论(0) 推荐(0) 编辑