加入收藏 | 设为首页 | 会员中心 | 我要投稿 广元站长网 (https://www.0839zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

5G行业应用临界点已至

发布时间:2021-02-21 16:03:56 所属栏目:外闻 来源:互联网
导读:采用这种方式我们不但减少了迭代次数,也避免了存储中间结果,显然这就是流水线,因为我们把三个操作放在了一次迭代当中。只要我们事先知道用户意图,总是能够采用上述方式实现跟Stream API等价的功能,但问题是Stream类库的设计者并不知道用户的意图是什么

采用这种方式我们不但减少了迭代次数,也避免了存储中间结果,显然这就是流水线,因为我们把三个操作放在了一次迭代当中。只要我们事先知道用户意图,总是能够采用上述方式实现跟Stream API等价的功能,但问题是Stream类库的设计者并不知道用户的意图是什么。如何在无法假设用户行为的前提下实现流水线,是类库的设计者要考虑的问题。

Stream流水线解决方案

我们大致能够想到,应该采用某种方式记录用户每一步的操作,当用户调用结束操作时将之前记录的操作叠加到一起在一次迭代中全部执行掉。沿着这个思路,有几个问题需要解决:

  •  用户的操作如何记录?
  •  操作如何叠加?
  •  叠加之后的操作如何执行?
  •  执行后的结果(如果有)在哪里?

操作如何记录

注意这里使用的是“操作(operation)”一词,指的是“Stream中间操作”的操作,很多Stream操作会需要一个回调函数(Lambda表达式),因此一个完整的操作是<数据来源,操作,回调函数>构成的三元组。Stream中使用Stage的概念来描述一个完整的操作,并用某种实例化后的PipelineHelper来代表Stage,将具有先后顺序的各个Stage连到一起,就构成了整个流水线。跟Stream相关类和接口的继承关系图示。


 

Stream上的所有操作分为两类:中间操作和结束操作,中间操作只是一种标记,只有结束操作才会触发实际计算。中间操作又可以分为无状态的(Stateless)和有状态的(Stateful),无状态中间操作是指元素的处理不受前面元素的影响,而有状态的中间操作必须等到所有元素处理之后才知道最终结果,比如排序是有状态操作,在读取所有元素之前并不能确定排序结果;结束操作又可以分为短路操作和非短路操作,短路操作是指不用处理全部元素就可以返回结果,比如找到第一个满足条件的元素。之所以要进行如此精细的划分,是因为底层对每一种情况的处理方式不同。

一种直白的实现方式

仍然考虑上述求最长字符串的程序,一种直白的流水线实现方式是为每一次函数调用都执一次迭代,并将处理中间结果放到某种数据结构中(比如数组,容器等)。具体说来,就是调用filter()方法后立即执行,选出所有以A开头的字符串并放到一个列表list1中,之后让list1传递给mapToInt()方法并立即执行,生成的结果放到list2中,最后遍历list2找出最大的数字作为最终结果。程序的执行流程如如所示:


 

交通管理是智慧城市如何利用边缘计算的一个很好的例子。像wejo这样的联网汽车初创企业正利用这一优势为正在寻找汽车数据实时分析的城市中的相关组织提供关键信息。

这意味着更好的实时预测和准确性,通过从高流量区域重新优化来减少拥塞。这种丰富的数据提供还可以用于帮助城市规划人员根据交通流量来设计道路和城市。

随着城市变得越来越“智能”,电动出行将继续发展。边缘计算将在智慧城市内实现电动交通服务方面发挥关键作用。例如,在发生严重车祸的情况下,边缘计算可以处理车辆数据并向本地服务警报事故。实际上,这种能力已成为欧盟内新车的要求。

但是,设备中创建的数据量不断增加,这造成了问题,因为数据中心基础架构没有能力处理此数据量。

随着连接的设备和服务的增长,我们冒着网络拥塞的风险。城市可以通过将边缘计算节点托管在更靠近数据生成点的位置来减轻这些问题,越来越多的城市规划人员正在将其纳入其设计。这允许在边缘本身处处理大量数据,从而消除了自动驾驶的障碍。

规划人员和城市设计师还需要在云中构建可扩展和安全的架构,以确保安全性,数据质量和有效的数据管理。通过这种方式,边缘系统可以执行数据的初始处理和分析,并在有足够处理器和存储容量的数据中心或云中进行进一步的分析。

建立成功的智慧城市数据策略



(编辑:广元站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读