摘要: public class Test04 { public static void main(String[] args) throws InterruptedException { CountDownLatch cd = new CountDownLatch(6);//总长度 for (int i 阅读全文
posted @ 2020-03-14 23:53 常温的冰 阅读(372) 评论(0) 推荐(0)
摘要: Callable与Runnable的不同区别在于: 1、Callable有返回值 Runnable没有返回值 2、Callable需要实现的方法是call方法 Runnable需要实现的方法是run方法 3、Callable的call方法会抛异常 Runnable的run方法不会抛异常 Callab 阅读全文
posted @ 2020-03-14 23:13 常温的冰 阅读(172) 评论(0) 推荐(0)
摘要: HashMap 对应 ConcurrentHashMap HashSet 对应 CopyOnWriteArraySet HashList 对应 CopyOnWriteArrayList public class NotSafeDemo { public static void main(String 阅读全文
posted @ 2020-03-14 22:34 常温的冰 阅读(324) 评论(0) 推荐(0)
摘要: 线程通信中要预防虚假唤醒 注意(在哪里停就在哪里启动) class shareDataOne{ private int number = 0; public synchronized void incr() throws InterruptedException { if(number != 0){ 阅读全文
posted @ 2020-03-14 18:59 常温的冰 阅读(89) 评论(0) 推荐(0)
摘要: Lock 的挂起 await() 唤醒signal() Lock 简单示例 public class LockDemo { public static void main(String[] args) { SaleTicket saleTicket = new SaleTicket(); new T 阅读全文
posted @ 2020-03-14 15:47 常温的冰 阅读(93) 评论(0) 推荐(0)
摘要: 相同: 暂停线程,哪里停哪里开始 不同: wait 释放锁等待 sleep 不释放锁等待 wait 、notfy、 notfyAll 都是属于Object sleep 属于Thread 阅读全文
posted @ 2020-03-14 14:39 常温的冰 阅读(167) 评论(0) 推荐(0)
摘要: 线程的6种状态:创建、就绪、阻塞、等待、限制时间等待、终结 /** * Thread state for a thread which has not yet started. */ NEW, /** * Thread state for a runnable thread. A thread in 阅读全文
posted @ 2020-03-14 14:32 常温的冰 阅读(100) 评论(0) 推荐(0)
摘要: public class Test { /* * Optional实际上是个容器,它是一个装一个对象的容器。这个对象可能是个空,可能是非空。 * 数组和集合是装多个对象的容器。 * * 1、创建Optional对象的方法: * (1)Optional.of(xx); 只能装非空对象 * (2)Opt 阅读全文
posted @ 2020-03-14 13:30 常温的冰 阅读(466) 评论(0) 推荐(0)
摘要: public class Test { /* * 创建:一步 * 中间:0~n步 * 终结:一步 * * 三、终结操作 * 1、void forEach(Consumer ):遍历流中的数据 * 2、long count():统计个数 * 3、boolean allMatch(Predicate p 阅读全文
posted @ 2020-03-14 13:11 常温的冰 阅读(135) 评论(0) 推荐(0)
摘要: public class Test08 { /* * 二、中间的加工操作 * (1)filter(Predicate p):过滤 * (2)distinct():去重 * (3)limit(long maxSize):取有限的几个 * (4)skip(long n):跳过n个 * (5)peek(C 阅读全文
posted @ 2020-03-14 12:53 常温的冰 阅读(199) 评论(0) 推荐(0)