并发知识6

作者: 奔跑的蛙牛 | 来源:发表于2018-08-06 23:54 被阅读1次

对并发散列映射的批操作

javase8 为散列映射提供批操作,即使有其他线程在处理映射,这些操作也能安全的执行。
批操作会遍历映射, 处理遍历过程中找到的元素

3种操作

  • 搜索为每个键或值提供一个函数, 直到函数生成一个非 null 的结果。然后搜 索终止, 返回这个函数的结果。
  • 归约 组合所有键或值, 这里要使用所提供的一个累加函数
  • forEach 为所有键或值提供一个函数。

找出第一个出现次数超过1000的单词

 String result = map.search(threshold, (k, v) -> v > 1000 ? k : null);

使用foreach遍历

map. forEach ( threshold ,
(k, v) -> v > 1000 ? k + "> " + v : null,  // Filter and transformer 
System.out::println); // The nulls are not passed to the consumer

使用reduce累加

Long sum = map.reduceValues(threshold, Long::sum);

统计多少个条目的值大于1000

Long count = map.reduceValues(threshold, v -> v > 1000 ? 1L : null ,
Long: : sum) ;

并行数组算法

Arrays.parallelPrefix(values, (x, y) -> x * y)

执行器

构建新的线程有一定的代价,涉及到与操作系统的交互。如果程序中创建大量的生命很短的线程,建议使用线程池

线程池

使用线程池应该做的事

  1. 调用 Executors 类中静态的方法 newCachedThreadPool 或 newFixedThreadPool

  2. 调用 submit 提交 Runnable 或 Callable 对象

  3. 如果想要取消一个任务, 或如果提交 Callable 对象, 那就要保存好返回的 Future 对象。

  4. 当不再提交任何任务时, 调用 shutdown。

可完成future

可以利用CompletableFuture实现当某一事件发生后执行某个操作,也可以利用它来有顺序的做某件事

同步器

同步器.png

相关文章

  • 并发知识6

    对并发散列映射的批操作 javase8 为散列映射提供批操作,即使有其他线程在处理映射,这些操作也能安全的执行。批...

  • java并发编程知识梳理

    分享一个java并发编程知识点图谱Java并发知识图谱.png

  • 1. 导学

    1️⃣主题是什么? ① 并发编程② 高并发解决方案 2️⃣相关的知识点有什么? 并发编程相关知识点① 线程安全② ...

  • Java并发编程学习总结

    Java 并发基础知识 Java 并发的基础知识,可能会在笔试中遇到,技术面试中也可能以并发知识环节提问的第一个问...

  • 高并发编程

    并发基础知识

  • 2020-03-20

    Java并发编程学习前期知识下篇 通过上一篇《Java并发编程学习前期知识上篇》我们知道了在Java并发中的可见性...

  • Java并发编程学习前期知识下篇

    Java并发编程学习前期知识下篇 通过上一篇《Java并发编程学习前期知识上篇》我们知道了在Java并发中的可见性...

  • JUC并发编程-1.并发与高并发知识概要

    1.并发相关知识点 并发概要1.jpg 2.线程并发与安全 并发概要2.jpg 3.高并发相关 并发概要3.jpg...

  • 第一章

    Java并发编程与高并发解决方案知识点:线程安全;线程封闭;线程调度;同步容器;并发容器;AQS;J.UC 高并发...

  • Java并发

    本文回顾并发知识,划出关键部分, 并发基础 “共享”、“可变“、“可重入”,线程之间对象“可见性”是并发的基础。 ...

网友评论

    本文标题:并发知识6

    本文链接:https://www.haomeiwen.com/subject/tmqnvftx.html