协程启动 GlobalScope.launch和runBlocking的区别

news/2024/7/23 8:24:42 标签: java, 开发语言

协程启动

如果想在协程非作用域中启动协程,有两种方法

runBlocking和GlobalScope.launch{}.start()

其中runBlocking会阻塞主线程,直到回调代码执行完毕,该方法不能用来异步启动,只能用来从非协程作用域切换到协程作用域(比如执行suspend块代码)

使用GlobalScope.launch{}.start(),表示在非协程作用域中启动协程,该方法不会阻塞主线程。

执行下操作就能看出区别

fun main(args: Array<String>) {

    println(1)
    runBlocking {
        println("休眠3秒")
        delay(3000)
        println(2)
    }
    println(3)
}

打印顺序:

1
休眠3秒
2
3

---------------------------------------------------

fun main(args: Array<String>) {
    println(1)
    GlobalScope.launch(Dispatchers.IO) {
        println("休眠3秒")
        delay(3000)
        println(2)
    }
    println(3)
    //阻塞主线程4秒,保证GlobalScope运行期间,JVM不会被关闭
    Thread.sleep(4000)
}

打印顺序

1
3
休眠3秒
2

可以看出,runBlocking在执行时会阻塞主线程,而GlobalScope不会


http://www.niftyadmin.cn/n/214651.html

相关文章

kafaka学习

kafaka 消息队列&#xff1a;通常用来解决一个进程内&#xff0c;多线程环境下&#xff0c;资源竞争的问题&#xff1b;但是消息队列的锁的粒度太大了&#xff0c;需要进行拆分 消息队列中间组件 一个进程中&#xff0c;同时存在生产者、消费者、消息队列&#xff0c;在分布…

C#基础复习

目录 格式字符串 多重标记和值 预定义类型 用户定义类型 值类型和引用类型 存储引用类型对象的成员 C#类型的分类 静态类型和dynamic关键字 类的基本概念 类成员的类型 为数据分配内存 访问修饰符 格式字符串 多重标记和值 C#程序就是一组类型声明&#xff0c;学习C#就是学习…

WebSocket详解-02

一、背景 Websocket是html5提出的一个协议规范&#xff0c;是为解决客户端与服务端实时通信。 WebSocket在连接关闭时会触发onclose事件, 在连接异常时会触发onerror事件。但在弱网环境下, 它们的触发灵敏度不高, 往往延迟很久才触发, 前端再去进行重连操作, 这样很不友…

目标检测——YOLOv7(十三)

简介&#xff1a; 继美团发布YOLOV6之后&#xff0c;YOLO系列原作者也发布了YOLOV7。主要从两点进行模型的优化&#xff1a;模型结构重参化和动态标签分配。 YOLOv7的特点是快&#xff01;相同体量下比YOLOv5精度更高&#xff0c;速度快120%&#xff0c;比YOLOX快180%。 Github…

「ML 实践篇」模型训练

在训练不同机器学习算法模型时&#xff0c;遇到的各类训练算法大多对用户都是一个黑匣子&#xff0c;而理解它们实际怎么工作&#xff0c;对用户是很有帮助的&#xff1b; 快速定位到合适的模型与正确的训练算法&#xff0c;找到一套适当的超参数等&#xff1b;更高效的执行错…

53 openEuler搭建PostgreSQL数据库服务器-管理数据库

文章目录53 openEuler搭建PostgreSQL数据库服务器-管理数据库53.1 创建数据库创建数据库示例53.2 选择数据库选择数据库示例53.3 查看数据库查看数据库示例53.4 删除数据库删除数据库示例53.5 备份数据库备份数据库示例53.6 恢复数据库恢复数据库示例53 openEuler搭建PostgreSQ…

jQuery教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 jQuery入门教程 - 从简单的步骤开始了解jQuery&#xff0c;从基本到高级概念&#xff0c;包括jQuery概述&#xff0c;基础知识&#xff0c;选择器&#xff0c;属性&#xff0c;遍历&#xff0c;CSS&#xff0c;DOM操作&#xff0c;AJAX支持&#xff0c;拖放&#xff…

Android端推送消息之极光推送

推送方式 轮询 --实现方式: 周期性主动获取网络中的数据; --缺点: 费电, 费流量; SMS --实现方式: 服务器端向手机端发送短信, 手机监听短信广播, 将拦截的短信信息进行显示; --优点: 省电, 省流量, 在没有网络的偏远地点也能接收到推送消息; --缺点: 费钱, 一毛钱一条;…