首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    协程中的取消和异常 | 取消操作详解

    在日常的开发中,我们都知道应该避免不必要的任务处理来节省设备的内存空间和电量的使用——这一原则在协程中同样适用。...⚠️ 为了能够更好地理解本文所讲的内容,建议您首先阅读本系列中的第一篇文章: 协程中的取消和异常 | 核心概念介绍。...viewModelScope 和 lifecycleScope 都是 CoroutineScope 对象,它们都会在适当的时间点被取消。...但是紧接着我们发现 Hello 3 和 Hello 4 打印到了命令行中。当协程处理的任务结束后,协程又转变为了已取消 (cancelled) 状态。...suspendCancellableCoroutine 和 invokeOnCancellation 如果您通过 suspendCoroutine 方法将回调转为协程,那么您更应该使用 suspendCancellableCoroutine

    3.3K20

    【企业架构】确定策略和动机

    策略与执行的联系相对容易: 将战略与能力相关联——制定战略目标并确定需要或需要增强哪些能力才能实现目标。能力是执行的基本能力。...时间表将确定能力的当前状态——这需要能力成熟度评估 (CMA) 来确定能力的状态,以及基本组件(人员、流程、技术和信息)以及能力之间的依赖关系。...将能力与技术相关联——确定必须弥合的技术差距以帮助实现能力。这包括技术和信息。 技术路线图——根据预算、依赖关系和资源安排技术实施。这与能力路线图有内在联系,实际上可以为能力路线图提供反馈。...如果功能映射到技术,那么您可以做各种有趣的事情: 如果您的目标发生变化,您可以查询以确定所有可能受到影响的资源。 如果资源受到外部事件的影响,您可以查询以确定哪些目标会受到影响。...如果人力资源总监被更换,则可以确定行动方案并将其提交给新总监,新总监可能对如何进行有不同的想法。 然而,以上所有都假设数据是可查询的格式。

    54620

    Java并发编程:任务的取消和关闭

    前言 任务和线程的启动很容易。在大多数时候,我们都会让它们运行直到结束,或者让它们自行停止。然而,有时候我们希望提前结束任务或线程,或许是因为用户取消了操作,或者应用程序需要被快速关闭。...要使任务和线程能安全、快速、可靠地停止下来,并不是一件容易的事。Java 没有提供任何机制来安全的终止线程。但它提供了中断,这是一种协作机制,能够使一个线程终止另一个线程的当前工作。...有些方法,例如 wait、sleep 和 join 等,将严格地处理这种请求,当它们收到中断请求或者在开始执行时发现某个已经被设置好的中断状态时,将抛出一个异常。...区分任务和线程对中断的反应是很重要的。一个中断请求可以有一个或多个接收者——中断线程池中的某个工作者线程,同时意味着“取消当前任务”和“关闭工作者线程”。...在常规的任务和库代码中都不应该屏蔽中断请求。 对于一些不支持取消但仍可以调用可中断阻塞方法的操作,它们必须在循环中调用这些方法,并在发现中断后重新尝试。

    2K20
    领券