栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java8概述,java8多线程编程,Streams

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java8概述,java8多线程编程,Streams

《Java8实战》笔记

问题:为什么要多线程编程?

要了解多线程编程,先理解java8对硬件的影响:
Java 8对硬件的影响:平常我们用的CPU都是多核的——你的笔记本电脑或台式机上的处理器可能有四个CPU内核,甚至更多。但是,绝大多数现有的Java程序都只使用其中一个内核,其他三个都闲着,或只是用一小部分的处理能力来运行操作系统或杀毒程序。
上面这段话简单说就是,不用多线程编程,程序只会使用多核CPU的一个内核。只有使用多线程编程才能使用多个内核。
但是,多线程编程很难使用,从java1到现在,java一直在降低线程的使用难度
Java 1.0里有线程和锁,甚至有一个内存模型——这是当时的最佳做法,但事实证明,不具备专门知识的项目团队很难可靠地使用这些基本模型。
Java 5添加了工业级的构建模块,如线程池和并发集合。
Java 7添加了分支/合并(fork/join)框架,使得并行变得更实用,但仍然很困难。
Java 8对并行有了一个更简单的新思路,不过你仍要遵循一些规则,详细可以看《Java8实战》。

Streams

提到多线程编程,一般会想到synchronized,但是这个东西上手极难。
使用Streams可以避免使用synchronized
Java 8提供了一个新的API(称为“流”,Stream),它支持许多处理数据的并行操作,其思路和在数据库查询语言中的思路类似——用更高级的方式表达想要的东西,而由“实现”(在这里是Streams库)来选择最佳低级执行机制。这样就可以避免用synchronized编写代码,这一代码不仅容易出错,而且在多核CPU上执行所需的成本也比你想象的要高。
在Java 8中加入Streams可以看作把另外两项扩充加入Java 8的直接原因:把代码传递给方法的简洁方式(方法引用、Lambda)和接口中的默认方法。
Streams提供了一种新的方式,这种方式简洁地表达了行为参数化。比方说,你想要写两个只有几行代码不同的方法,那现在你只需要把不同的那部分代码作为参数传递进去就可以了
Java 8里面将代码传递给方法的功能(同时也能够返回代码并将其包含在数据结构中)还让我们能够使用一整套新技巧,通常称为函数式编程。
概括Streams是Java 8表示有序数据,并能灵活地表示这些数据是否可以并行处理的新方式。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/396716.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号