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

正在引起一场医学革命

发布时间:2021-02-20 18:27:33 所属栏目:传媒 来源:互联网
导读:一旦你创建了你的线程容器,也就创建了一个新类的实例1来加入所有在退出的线程。你可以去除你的联合循环,只要你知道无论函数是否退出,这些线程都将被联合起来。注意调用 futures[i].get() 2将被阻塞直到结果出来,因此在这一点并不需要明确地与线程融合起来。

一旦你创建了你的线程容器,也就创建了一个新类的实例1来加入所有在退出的线程。你可以去除你的联合循环,只要你知道无论函数是否退出,这些线程都将被联合起来。注意调用 futures[i].get() 2将被阻塞直到结果出来,因此在这一点并不需要明确地与线程融合起来。这与清单8.2中的原型不一样,在清单8.2中你必须与线程联合起来确保正确复制了结果向量。你不仅得到了异常安全代码,而且你的函数也更短了,因为将联合代码提取到你的新(可再用的)类中了。

2. STD::ASYNC()的异常安全

你已经知道了当处理线程时需要什么来实现异常安全,我们来看看使用std::async() 时需要做的同样的事情。你已经看到了,在这种情况下库为你处理这些线程,并且当future是就绪的时候,产生的任何线程都完成了。需要注意到关键事情就是异常安全,如果销毁future的时候没有等待它,析构函数将等待线程完成。这就避免了仍然在执行以及持有数据引用的泄漏线程的问题。清单8.5所示就是使用std::async ()的异常安全实现。

清单8.5 使用std::async的std::accumulate的异常安全并行版本


 

第一个改变就是,函数调用accumulate_block操作直接返回结果,而不是返回存储地址的引用1。你使用std::packaged_task 和std::future来保证异常安全,因此你也可以使用它来转移结果。这就需要你调用std::accumulate 2明确使用默认构造函数T而不是重新使用提供的result值,不过这只是一个小小的改变。

下一个改变就是你用futures 向量3,而不是用结果为每个生成的线程存储一个 std:future 。在生成戈程的循环中,你首先为 accumulate_block 创造一个任务4。std:packaged_task

既然你已经使用了future ,就不再有结果数组了,因此必须将最后一块的结果存储在一个变量中7而不是存储在数组的一个位置中。同样,因为你将从future中得到值,使用基本的for 循环比使用std:accumulate要简单,以提供的初始值开始8,并且将每个future的结果累加起来9。如果相应的任务抛出异常,就会在future中捕捉到并且调用get() 时会再次抛出异常。最后,在返回总的结果给调用者之前要加上最后一个块的结果10。

因此,这就去除了一个可能的问题,工作线程中抛出的异常会在主线程中再次被抛出。如果多于一个工作线程抛出异常,只有一个异常会被传播,但是这也不是一个大问题。如果确实有关的话,可以使用类似

std::nested_exception来捕捉所有的异常然后抛出它。

如果在你产生第一个线程和你加入它们之间抛出异常的话,那么剩下的问题就是线程泄漏。最简单的方法就是捕获所有异常,并且将它们融合到调用joinable()的线程中,然后再次抛出异常。


 

动化运营的数据中心几乎不需要人工干预即可处理日常操作。支持数据中心的工具可以协同工作,以自动化和智能地管理基础设施,同时优化操作并主动解决潜在问题。

不过在这一点上,自动化运营的数据中心更像是一个理论上的目标,很难成为现实。但是,对于具有Synergy和Composable Rack的HPE公司和具有vRealize AI(以前称为Project Magma)的VMware公司供应商,以及IT技术的进步为其铺平了道路,如果看到真正的自动化运营的数据中心,不要感到惊讶在不久的将来实现这种功能。

 

自动化运营的数据中心几乎不需要人工干预即可处理日常操作。人们需要了解其工作原理和优势,以及HPE公司和VMware公司为使自动化运营的数据中心成为现实所做的工作。

随着组织的工作负载变得越来越复杂,支持它们的IT基础设施也变得越来越复杂。许多组织正在采用自动化、软件定义资源和人工智能等技术来帮助减轻这一负担。自动化运营的数据中心不仅简化了操作,提高了资源利用率,也为IT管理中的新技术提供了基础。



 

(编辑:宜春站长网)

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

    热点阅读