kotlin协程反编译java学习原理

前情提要


GlobalScope.launch(Dispatchers.Main) { // 默认是Default异步
    // 1.从当前协程体作用域Dispatchers.Main 协程依附的线程 到 挂起点 挂起函数 到 执行 请求耗时操作 而 切换到 IO异步线程
    // 2.IO异步线程执行完成后,开始恢复,当前作用域Dispatchers.Main,执行左边代码,保证了 左边代码恢复到 UI线程
   var serverResponseInfo0 = requestLoadUser()}

private suspend fun requestLoadUser() : String {}// 上面函数 suspend关键字的原理,其实就是 ResponseCallBack// 把上面函数,反编译成Java的代码,是这个样子,请看下面代码:
/*      ResponseCallBack == Continuation只不过这个Continuation换个名字而已,他就是 ResponseCallBackpublic static final Object requestLoadUser(Continuation $ completion) { 
//               Continuation 后面剩余代码的恢复工作
Continuation--》继续 持续
public interface Continuation<in T> {public val context: CoroutineContext相当于 responseSuccess     结果↓               ↓public fun resumeWith(result: Result<T>)  请求回调成功public inline fun <T> Continuation<T>.resumeWithException(exception: Throwable): Unit =resumeWith(Result.failure(exception))  请求回调错误
}

suspend起到提醒的作用,经此而已。suspend里面没有异步切换。就是假的挂起。

suspend必须有suspend调用  相当于有一个隐式的 Continuation 传到下一个函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/207074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

modbus转profinet网关解决plc插槽号不够用的情况

PLC作为常用的控制设备之一&#xff0c;其插槽号有时会限制外部设备的连接数量。然而&#xff0c;通过使用modbus转profinet网关&#xff0c;可以解决这一问题。这种设备能够将modbus协议转换为profinet协议&#xff0c;实现PLC与更多外部设备的连接。 modbus转profinet网关还具…

游戏盾的防御原理以及为什么程序类型更适合接入游戏盾。

游戏盾是一种专门用于游戏服务器的安全防护服务&#xff0c;旨在抵御各种网络攻击。它的原理主要包括以下几个方面&#xff1a; 流量清洗和过滤&#xff1a;游戏盾会对进入游戏服务器的流量进行实时监测、分析和过滤。它通过识别恶意流量和攻击流量&#xff0c;过滤掉其中的攻击…

浏览器渲染页面的过程以及原理

什么是浏览器渲染 简单来说&#xff0c;就是将HTML字符串 —> 像素信息 渲染时间点 浏览器什么时候开始渲染&#xff1f; 网络线程发送请求&#xff0c;取回HTML封装为渲染任务并将其传递给渲染主线程的消息队列。 问题&#xff1a;只取回HTML吗&#xff1f;那CSS和JS呢&am…

面试经典150题(1-2)

leetcode 150道题 计划花两个月时候刷完&#xff0c;今天完成了两道(1-2)150&#xff1a; &#xff08;88. 合并两个有序数组&#xff09;题目描述&#xff1a; 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 n…

元宇宙vr党建云上实景展馆扩大党的影响力

随着科技的飞速发展&#xff0c;VR虚拟现实技术已经逐渐融入我们的日常生活&#xff0c;尤其在党建领域&#xff0c;VR数字党建展馆更是成为引领红色教育新风尚的重要载体。今天&#xff0c;就让我们一起探讨VR数字党建展馆如何提供沉浸式体验&#xff0c;助力党建工作创新升级…

十年OpenCV开发以后发布的作品 - OpenCV实验大师

OpenCV介绍 OpenCV是知名的计算机视觉框架&#xff0c;支持数十个不同的视觉处理模块&#xff0c;提供了超过2000多个传统算法&#xff0c;其核心功能支持图像处理、图像分析、特征提取、对象检测、深度学习模型推理等。当前支持C、Python、JS、C#等多种语言SDK&#xff0c;支…

智能优化算法应用:基于袋獾算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于袋獾算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于袋獾算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.袋獾算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

雷达点云数据.pcd格式转.bin格式

雷达点云数据.pcd格式转.bin格式 注意&#xff0c;方法1原则上可行&#xff0c;但是本人没整好pypcd的环境 方法2是绝对可以的。 方法1 1 源码如下&#xff1a; def pcb2bin1(): # save as bin formatimport os# import pypcdfrom pypcd import pypcdimport numpy as np…

python pandas dataframe常用数据处理总结

最近一直在做数据处理相关的工作&#xff0c;有几点经常遇到的情况总结如下&#xff1a; 数据中存在为空数据如何处理 处理方式1&#xff1a;丢弃数据行 # 实现方式1 data data.dropna(subset[id]) # 若id列中某行数值为空&#xff0c;丢弃整行数据 # 实现方式2 data df[df…

Ant Design Vue 年选择器

文章目录 参考文档效果展示实现过程 参考文档 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; DatePicker 日期选择框 大佬&#xff1a;搬砖小匠&#xff08;Ant Design vue 只选择年&#xff09; 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案…

光标虽小,但是能让其凭空消失的原因不少,需要仔细检查

在Windows 10中遇到鼠标光标有问题吗?我们已经为你提供了所需的修复程序。 光标消失的原因 光标不断消失可能是由各种原因引起的,因此有可能找到各种各样的解决方案。光标可能根本无法工作,或者在特定情况下可能会消失。鼠标按钮甚至可能在光标隐藏时工作。 以下是用户注…

如何验证一个URL是否合法

在JavaScript中&#xff0c;可以使用正则表达式&#xff08;RegExp&#xff09;或使用内置的URL对象来校验一个URL。下面是一些常用的方法以及对应的代码示例&#xff1a; 使用正则表达式进行校验&#xff1a; function validateURL(url) {const pattern /^(https?:\/\/)?…

使用Caliper对Fabric地basic链码进行性能测试

如果你需要对fabric网络中地合约进行吞吐量、延迟等性能进行评估&#xff0c;可以使用Caliper来实现&#xff0c;会返回给你一份网页版的直观测试报告。下面是对test-network网络地basic链码地测试过程。 目录 1. 建立caliper-workspace文件夹2. 安装npm等3. calipe安装4. 创建…

使用TransBigData组件实现个人手机定位功能

目录 一、引言 二、技术背景 三、实现逻辑 四、代码实现 五、优化与注意事项&#xff1a; 六、总结 摘要&#xff1a;随着现代社会对定位服务的需求日益增加&#xff0c;实现个人手机定位功能成为了开发者的研究热点。本文详细阐述了如何使用Python和TransBigData组件实现…

Python 从入门到精通 学习笔记 Day03

Python 从入门到精通 第三天 今日目标 流程控制语句、退出循环、练习学习的内容 一、流程控制语句 流程控制的三种方式&#xff1a;顺序语句、双分支语句、循环语句 双分支语句 Python 的双分支语句使用if-else语句实现。 其语法结构如下: if条件:#如果条作为真&#xff…

Facebook广告报告指标CPC

在Facebook广告中&#xff0c;CPC可以作为一个关键指标来评估广告效果和投资回报。较低的CPC意味着广告主能以更低的价格获得更多的点击量&#xff0c;从而降低广告投放成本。而较高的CPC可能暗示着广告主需要更大的预算才能获得相同数量的点击。本文小编将讲讲Facebook广告报告…

k8s上安装KubeSphere

安装KubeSphere 前置环境安装nfs-server文件系统配置nfs-client配置默认存储创建了一个存储类metrics-server集群指标监控组件 安装KubeSphere执行安装查看安装进度 前置环境 下载配置我都是以CentOS 7.9 安装 k8s(详细教程)文章的服务器作为示例&#xff0c;请自行修改为自己的…

2024年软考科目怎么选?(选科指引)

新手在准备报考软考时&#xff0c;都会遇到这样的一个问题——科目这么多&#xff0c;我适合考什么&#xff1f;要想知道自己适合报什么科目&#xff0c;就需要了解每个科目是什么&#xff0c;考什么等一系列的问题。今天给大家分享一下。 软考包含什么科目&#xff1f; 软考…

facebook广告相比谷歌广告的优势

Facebook广告相比谷歌广告的优势主要体现在以下方面&#xff1a; 用户数据丰富&#xff1a;Facebook拥有庞大的用户数据&#xff0c;包括人口、兴趣、行为等多个维度&#xff0c;这些数据可以帮助广告主更准确地定位到目标受众。相比之下&#xff0c;谷歌广告的用户数据相对较…

android快速网络请求之android-networking

今天介绍一个知道的人不多的库&#xff0c;写个简单的页面什么的。用起来很爽&#xff1f;如果你疑惑那么多开源的网络库为啥不用&#xff1f; 因为这个简单方便。拿来就用。经过这几天的实践。确实可以。推荐一下 如果你需要 GITHUB 首先。引入依赖 implementation com.ami…