package com.tiger.mykotlinapp.scope
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.cancel
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
fun main() {
val glob服务器托管网alScope = GlobalScope
globalScope.launch {
delay(3000)
println("hello")
}
globalScope.launch {
delay(3000)
println("hello")
}
服务器托管网 //因为globalScope是整个应用程序的生命周期,不能在此手动取消它,调用抛异常 java.lang.IllegalStateException: Scope cannot be cancelled because it does not have a job
globalScope.cancel()//不能手动取消它
while (true);
}
package com.tiger.mykotlinapp.scope
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.cancel
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
fun main() {
val coroutineScope = CoroutineScope(Dispatchers.Default)
coroutineScope.launch {
delay(3000)
println("hello")
}
coroutineScope.launch {
delay(3000)
println("hello")
}
//发现可以取消
coroutineScope.cancel()
while (true);
}
CoroutineScope和GlobalScope的区别
1. 作用域不同,第一个作用域是activity,第二个是全局整个应用程序
2.第一个可以取消,第二个取消会抛异常
3.一般都是用第一个,更加灵活。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: MappedByteBuffer VS FileChannel:从内核层面对比两者的性能差异
本文基于 Linux 内核 5.4 版本进行讨论 自上篇文章《从 Linux 内核角度探秘 JDK MappedByteBuffer》 发布之后,很多读者朋友私信我说,文章的信息量太大了,其中很多章节介绍的内容都是大家非常想要了解,并且是频繁被搜索的内容,所以…