
kotlin协程
文章平均质量分 71
kotlin
day_moon
这个作者很懒,什么都没留下…
展开
-
kotlin 共享可变状态和并发性
//1.并发引发的问题suspend fun masRun(action:suspend()->Unit){ val a=100 val b=1000 val time= measureTimeMillis { coroutineScope { repeat(a){ launch { repeat(b){action()} } .原创 2021-09-05 09:36:54 · 142 阅读 · 0 评论 -
kotlin 协程通道
// 1.通道 传输值流的方法fun main_channel() = runBlocking { val channel = Channel<Int>()//声明一个channel launch { for (i in 1..3) { channel.send(i + i) }//发送1+1 2+2 3+3 channel.close()//没有立即关闭通道 } repeat(3) { .原创 2021-09-05 00:03:41 · 168 阅读 · 0 评论 -
kotlin 异步流
//1.表示多个值 流用于返回多个异步计算值 fun foo(): List<Int> = listOf(1, 2, 3) fun forEachList() { foo().forEach { value -> println(value) } } //2.序列 fun foos(): Sequence<Int> = sequence {//使用一个序列(Sequence)来表示数字 for (i .原创 2021-09-01 18:23:26 · 337 阅读 · 0 评论 -
kotlin 协程上下文和调度器
//1.调度器 协程构造器(协程调度器) 将协程分派到线程中运行 fun mainDispatcher()= runBlocking { launch { println("launch ${Thread.currentThread().name} ..")//主线程 } launch(Dispatchers.Unconfined) { println("Unconfined ${Thread.cur..原创 2021-09-01 10:53:47 · 217 阅读 · 0 评论 -
kotlin 组合挂起函数
//1.按顺序执行fun main1() = runBlocking<Unit> { val time = measureTimeMillis { //计算时间 var one = doOne() var two = doTwo() println("onetwo Time is ${one+two}")//相加 } println("Time is ${time}")}suspend fun doOne(): In.原创 2021-08-31 17:43:35 · 237 阅读 · 0 评论 -
kotlin 取消和超时
//1.协程取消执行fun mainCancel() = runBlocking { var job = launch { repeat(20) { i -> println("$i") delay(1000) } } delay(1100) println("delay ...") cancelAndJoin(job) println("end")}private .原创 2021-08-31 16:49:58 · 450 阅读 · 0 评论 -
kotlin 协程基础
//开启一个协程private fun GlobalScopes() { GlobalScope.launch {//在后台启动一个新协程 delay(3000)//非阻塞延迟3秒 println("你好!") } println("嗨,") Thread.sleep(3000)//主线程阻塞3秒}//主线程阻塞private fun RunBlocking() { GlobalScope.launch {//在后台启动一个新.原创 2021-08-31 15:48:10 · 153 阅读 · 0 评论 -
kotlin 集合
后面再添加代码原创 2021-08-12 15:01:07 · 101 阅读 · 0 评论