首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Kotlin 协程】协程启动 ⑤ ( 协程作用域构建器 | runBlocking 函数 | coroutineScope 函数 | supervisorScope 函数 )

: 协程任务取消 : 在不需要协程任务的时候 , 取消协程任务 ; 追踪协程任务 : 追踪正在执行的协程任务 ; 发出错误信号 : 如果 协程任务执行失败 , 发出错误信号 , 表明执行任务出错 ;...二、协程作用域构建器 ( runBlocking 函数 | coroutineScope 函数 ) ---- 结构化并发 通过 协程作用域 CoroutineScope 管理协程任务 ; 协程作用域 构建器...构建的协程 都会等待 协程体 中的所有 协程任务 和 子协程 执行完毕 ; 代码示例 : 在下面的代码中 , runBlocking 可以在普通的函数中执行 , 将主线程包装成了协程体 ; 但是....() -> R): R supervisorScope 函数 构建的 协程作用域 , 如果有一个 子协程 执行失败 , 其它子协程继续执行 , 不会受到执行失败的子协程影响 ; 函数原型如下 : public...协程作用域 , // 如果有一个 子协程 执行失败 , // 其它子协程继续执行 , 不会受到执行失败的子协程影响 ;

46230

【Kotlin 协程】协程异常处理 ① ( 根协程异常处理 | 自动传播异常 | 在协程体捕获异常 | 向用户暴露异常 | 在 await 处捕获异常 | 非根协程异常处理 | 异常传播特性 )

异常抛出点 ( 在 await、receive 处抛出异常 ) 2、异常捕获点 ( 在 await、receive 处捕获异常 ) 四、非根协程异常处理 五、异常传播特性 一、协程异常处理 ---- 在 协程任务...中 , 执行的代码出现异常 , 需要进行 异常处理 , 并给出错误提示信息 , 展示给用户 或者 上报服务器 ; 协程构建器 有两种 异常处理 形式 : 自动传播异常 : 使用 launch 或 actor...构建器 创建的 根协程 , 如果出现异常 , 会 马上抛出异常 ; 此类异常 在 可能出现异常的代码位置 进行捕获即可 ; 向用户暴露异常 : 使用 async 或 produce 构建器 创建的...异常代码示例 : 使用 launch 构建器创建协程 , 在协程任务中抛出异常 , 查看异常的抛出点 ; package kim.hsl.coroutine import android.os.Bundle...{ super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) /

63010
您找到你想要的搜索结果了吗?
是的
没有找到

脑电研究:意外事件通过额基底神经节抑制机制中断认知

因此,作者预测WM任务中的意外事件将导致STN活动增加。作者进一步预测,与意外相关的STN活动的增加将对应着更多的WM(工作记忆)失败。 ? 图1 行为任务的细节和结果。 (a)WM任务范式。...意外事件量化如下,然后使用配对样本t检验比较正确和错误意外试次值。 ?...EEG单试次GLM分析: 为了研究MS-IC(认知运动抑制独立成分) ERSP(时间-频率响应)与意外程度、WM(工作记忆)准确性(以及意外与WM交互作用)之间的关系,我们为每个被试构建了单独的GLMs...WM在每一个意外试次中的准确性都被编码为:1表示未命中或错误警报,0表示命中或正确拒绝。...根据模型的意外值,错误预测比正确预测WM的声音更加意外,且影响由中到大(配对样本t检验,N = 20, t (19) = 2.14, P = 0.045, d = 0.77,图1 c),这表明WM失败在这个任务中与意外的程度直接相关

72420

构建可靠系统的策略

构建能够应对分布式系统中不可避免的故障是工程师面临的基本挑战。当软件跨网络和服务器部署时,故障不再是例外,而是必然的。硬件可能会出现故障,网络可能会分区,整个数据中心可能会离线。...失败的根源 故障的根源 我们首先来看看系统失败的原因以及常见的失败原因。这通常可以追溯到硬件故障、软件错误、人为错误或这些因素的组合。...部署失败 - 意外副作用、服务中断 操作事故——意外动作、保障措施不足 容错策略 有许多策略可以帮助在分布式系统中构建容错能力。...优先级队列:对任务进行排序并首先处理优先级较高的任务。 回退重试:在失败重试之间逐渐等待更长的时间。 渐进增强:先支持基本功能,再增强。 功能退化:定义最小可行模式并根据需要删除未使用的功能。...利用这些知识来构建将故障视为平常生活事实的系统。

16440

kotlin--协程入门

{ super.onCreate(savedInstanceState) setContentView(R.layout.activity_main)...: "" } }.execute() } } } 使用时,我们会发现as工具给出了AsyncTask过时的提示,说明以后会渐渐被协程取代...{ super.onCreate(savedInstanceState) setContentView(R.layout.activity_main)...,无法追踪,会导致资源浪费,甚至发送一个无用的网络请求,这种情况称为任务泄漏 为了解决任务泄漏,kotlin引入了结构化并发机制 使用结构化并发可以做到 1.取消任务,当某项任务不需要执行了,取消它...2.追踪任务,某项任务正在执行,追踪它 3.发出错误信号,当协程失败时,发出错误信号表明有错误产生 CoroutineScope 定义协程必须指定其CoroutineScope,它会跟踪所有协程,

56310

Android 架构组件的最新进展 (上篇)

从最初发布的管理 Activity 和 Fragment 生命周期的Lifecycle 库和访问 SQLite 数据库的 Room 库,后来推出了 分页(Paging)、 导航(Navigation) 和管理后台任务的...如果您的工作涉及到协同开发,还有一个好消息,那就是我们增加了对分布式构建缓存的支持。 最后,数据绑定支持增量注解处理,能提升增量构建的性能。...或者直接在 XML 中设置一个变量,并在视图中访问,代码也能马上给出对应的提示。这些都即时可用,无需编译! ? ?...现在在构建输出信息窗口中,数据绑定错误单独成组,这样开发者能更轻松地找到自己需要处理的错误信息。 ? 有没有更好的视图访问方式? ?...视图绑定 (View Binding) 给出 ID 即可自动生成绑定类代码且能保证编译安全,能做到一石 "三" 鸟的视图绑定可在 Android Studio 3.6 Canary 11 或更新版本中用得上

89440

可解释性的重要性2.1

但在其他情况下,了解“为什么”可以帮助您更多地了解问题,数据无效或者模型失败的原因。...人类的好奇心和学习:人类有一个他们对环境的感知模型,当意外发生时会更新。通过会对意外的发生找到一个合理的解释来进行更新行为。例如,一个人意外生病,他会想:“为什么我生病了?”。...当不透明机器学习模型用于研究时,如果模型仅给出没有解释的决策,那么科学发现仍然是黑匣子。为了促进学习和满足好奇心,为什么机器做了某些预测或行为,可解释性和解释是至关重要的。...构建一个常识,例如,“意外”事件(如Doge又一次卡在浴室地毯上......),Doge通过解释它仅仅是被卡住而不是在未授权就停止了工作。...对错误预测的解释有助于理解错误的原因。它为如何修复系统提供了方向。考虑一个哈士奇与狼分类器的例子,将一些哈士奇错误归类为狼。使用可解释的机器学习方法,您会发现错误分类是由于图像上的雪。

1K40

OpenAI提出HER算法,AI系统学会从错误中学习

他们发布的新平台显示,可以允许人工智能系统从错误中吸取教训,并将错误视为系统的目标而非失败。...失败是成功之母:HER有自我审视能力 最近几个月,OpenAI的研究人员集中精力于构建具有更强的学习能力的人工智能。...正如名字所示,HER帮助人工智能系统在完成一项任务后,具有自我审视的能力。OpenAI的博客中提到,人工智能认为失败乃成功之母。...以下是视频介绍: 研究人员写到:“构建HER的关键在于利用人类的直觉:在实现某个任务时,虽然我们没有成功,但是在这个过程中我们学到一些不一样的东西,既然如此,为何不能将我们最终学到的知识作为我们最初的目标呢...无论如何,正如OpenAI的模型所显示的,HER有助于鼓励人工智能系统像人类一样从错误中学习,两者的主要区别在于人工智能在面对失败的时候不会像一些脆弱的人类那样伤心沮丧。

862120

「成熟」大模型才能涌现?MIT:GPT-4能自我纠错代码,GPT-3.5却不行

然而,在具有挑战性的编程任务(比如竞赛和软件工程师的面试)中,它们却完成得并不好。 好在,很多模型会通过一种自修复工作流来「自省」,来自我纠正代码中的错误。...如果程序在测试中失败错误消息会被传送到反馈生成模型,输出一个代码失败原因的解释,然后把反馈传给修复模型。 从表面上看,这个工作流似乎非常完美。...不出意外的是,随着问题变得更难,相对差异也会增加,这表明当任务(和代码)变得更复杂时,GPT-4产生准确和有用反馈的能力远远落后于人类参与者。...该组的使命是推进DL的最新技术,并将其应用于自然语言和图像理解以及构建对话代理。他领导了构建大规模基础模型的研究,这些模型为微软的重要人工智能产品提供了支持。...图B展示了AI可能给出的反馈,以及GPT-4根据反馈如何提升自己。 比如flinch technique,一种砍价的时候的「退缩技巧」,展示出一种意外和失落。 话术就像:哎这可比我想的贵啊。

24720

运行个Hello Word也能出Bug?Python、Java、C++等16种语言中枪,最严重可导致文件丢失

0 Bug的最初发现者表示:这可不是一个小错误,本质上是“打印到标准输出”的任务。 发生了错误但不抛出异常,意味着即使出现数据丢失,进程依然会继续运行。...博主sunfishcode这样说: 标准输出可能意味着一个具体文件,那么如果这个文件刚好耗尽了空间,程序又因为Bug没有检测到这一错误呢? 父进程不会知道子进程失败了,只会继续运行。...当然,博主在最后也给出了没有踩雷的语言列表: 网友热议:这到底算不算Bug?... (System.out.checkError()) throw new IOException(); 下方还有人补充到,Java已经引入的RuntimeIOException就可以用于I/O异常出现意外的情况...甚至有人表示:程序的失败不是由程序控制结构定义,而是由需求定义,Hello World程序的需求难道包括主机系统的所有错误边界吗?

49850

运行个Hello Word也能出Bug?Python、Java、C++等16种语言中枪,最严重可导致文件丢失

0 Bug的最初发现者表示:这可不是一个小错误,本质上是“打印到标准输出”的任务。 发生了错误但不抛出异常,意味着即使出现数据丢失,进程依然会继续运行。...博主sunfishcode这样说: 标准输出可能意味着一个具体文件,那么如果这个文件刚好耗尽了空间,程序又因为Bug没有检测到这一错误呢? 父进程不会知道子进程失败了,只会继续运行。...当然,博主在最后也给出了没有踩雷的语言列表: 网友热议:这到底算不算Bug?... (System.out.checkError()) throw new IOException(); 下方还有人补充到,Java已经引入的RuntimeIOException就可以用于I/O异常出现意外的情况...甚至有人表示:程序的失败不是由程序控制结构定义,而是由需求定义,Hello World程序的需求难道包括主机系统的所有错误边界吗?

53410

羊驼系列大模型和ChatGPT差多少?详细测评后,我沉默了

热身:解方程 第一项任务是解简单的多项式方程,这些问题都有标准答案,比较容易评估对错。 对于指定的三个模型,测试者给出的题目是求二元一次方程「x^2+3x=0」的解。...下面是一个 ChatGPT 错误的例子: ChatGPT 在最后一步计算错误,(13 +- 25)/2 应该得到 [19,-6] 而不是 [19.5,-6.5]。...但令人意外的是,它最后还是给出错误的答案,即「Elon musk does not accuse him of lying or insult him in any way」。...在做了这个小小的修改后,ChatGPT 就能解决这个问题:让我们看看 Vicuna 是怎么做的: Vicuna 遵循了输出结构,但不幸的是,它运行了错误的命令来完成任务。...此处开源模型的效果不是很好(或许可以通过更多的 prompt 工程来改进它们,但它们在大多数较难的指令上都失败了)。

34420

使用Jenkins实现apk打包

最近小编正在调研如何能够使用持续集成工具进行apk打包,轻轻松松(30余次的血泪教训),就成功完成apk打包任务,在这里分享下Jenkins实现apk打包的一些经验。 ? 1....新建任务; 2. 构建一个自由风格的软件项目; 3. 源码管理,输入svn或者git路径 4. 构建触发器,小编使用的是轮询SCM ?...还有一些简单的配置说明: 每天8点构建一次: 0 8 * * * 每5分钟检测下源码变化: * /5 * * * * 周一到周五,8点到17点,两小时构建一次:0 8~17 /2 * * 1 - 5 5...构建, 配置gradle以及执行脚本 ? 6. 构建后操作,产生用于存档的文件 ? ? 4. 经验总结 ? 1. 不要忽略环境变量的配置,有30%的失败是由于gradle配置失败造成的; 2....Jenkins给出的有效错误信息很少,像这样,建议在workspace下手动执行app:assemableRelease获取更多的错误信息; ?

2.4K10

优雅的处理你的Java异常

这样一来首先有违MVC模式,二来逻辑十分不清晰,难以维护.本文结合工作经验,给出一些异常使用建议,使用spring来实战异常为我们带来的好处....一些程序员错误的开发了代码,导致保存过程中出现异常,比如NPE. 对于前3种,我们认为是有效性检查失败,第4种属与我们无法处理的异常,第5种就是程序员bug....} 如此一来没有任何地方需要关心异常,或者业务逻辑校验失败的情况.用户也可以得到很友好的错误提示....代码错误,这类异常用于描述开发的代码错误,例如NPE,ILLARG,都属于程序员制造的BUG. 专有异常,多用于特定业务场景,用于描述指定作业出现意外情况无法预先处理....业务系统也存在很多巨量任务处理的情况.但是那些任务都是原子性的,现在MVC中的controller和service可不是原子性的,不然为什么要区分这么多层呢.

49530

【Kotlin 协程】协程启动 ② ( 多协程控制 | launch 协程执行顺序控制 | Job#join() 函数 | async 协程执行顺序控制 | Deferred#await() 函数 )

源码地址 : https://download.csdn.net/download/han1202012/87183425 一、launch 协程执行顺序控制 ---- 如果需要通过 launch 协程构建器...* * 特别是,它意味着父协程在子协程上调用' join '时抛出 * [CancellationException]如果子进程失败,因为子进程的失败会默认取消父进程, * 除非子进程是从[supervisor...{ super.onCreate(savedInstanceState) setContentView(R.layout.activity_main)...Log.i(TAG, "launchJob2 执行完毕") } } } } 二、async 协程执行顺序控制 ---- 如果需要通过 async 协程构建器...{ super.onCreate(savedInstanceState) setContentView(R.layout.activity_main)

79820

【韧性架构设计】软件韧性:从意外中恢复的 7 个必备因素

软件从意外事件中恢复的能力是软件弹性。这意味着软件工程师必须预测意外事件并对其进行解释。创建这种容错的解决方案可以在代码中或在基础设施层上。...如果软件系统在发生意外事件时能够部分正常运行,这就是软件弹性。在基础设施层面,有 NetFlix 臭名昭著的 Chaos Monkey。Chaos Monkey 进入您的生产环境并随机开始杀死实例。...可以通过以下步骤完成,以避免另一个 cron 同时执行相同的任务: 准备基础任务,例如将这些行与企业资源规划 (ERP) 软件同步 启动数据库事务 SELECT … FOR UPDATE,隔离级别已提交...让我们假设如果其他内部服务之一有一个错误配置的无限循环,那么当它开始疯狂地攻击您的服务时,您的服务将停机。 如果您有一个良好的速率限制,其他服务将尽早开始发现错误,他们可以更快地解决问题。...软件弹性是通过始终质疑如果失败会发生什么来实现的,尤其是在与数据库或外部 API 等外部服务通信时。我希望这可以帮助您构建更具弹性的软件。如果您还有其他方面要分享,请不要忘记发表评论。

84830

A process in the process pool was terminated abruptly while the future was runni

然而,在某些情况下,进程池中的进程可能会意外终止,导致意外行为和错误。 一个这样的场景是在未完成 future 的情况下终止进程。future 表示异步操作的结果,并用于检索工作进程执行的任务的结果。...异常或错误:工作进程中的未处理异常或错误可能导致其意外终止。对正在运行或挂起的 future 的影响当进程池中的进程被突然终止时,与该进程关联的任何正在运行或挂起的 future 都会受到影响。...重试机制:当进程被突然终止时,考虑使用新的进程重试任务。这可以确保任务成功完成,即使进程失败错误处理和恢复:在应用程序中实现健壮的错误处理和恢复机制。...这可以包括重试失败任务、记录错误,并在必要时应用适当的后备策略。监控和监管:监视进程池中工作进程的健康状况和状态。实现监管机制,及时检测和处理终止的进程。...这将导致更健壮、可靠的应用程序,在面对意外故障时,确保结果一致和准确。当进程池中的进程突然终止时,可以通过捕获异常、重试机制和错误处理来解决这个问题。

56820
领券