Kotlin协程案例:序列生成器

简介: 一、使用Kotlin协程,写一个斐波拉契序列package cn.kotliner.coroutine.sequenceimport kotlin.

一、使用Kotlin协程,写一个斐波拉契序列

package cn.kotliner.coroutine.sequence

import kotlin.coroutines.experimental.buildSequence

/**
 * @author:wangdong
 * @description:
 */

fun main(args: Array<String>) {
    for (i in fibonacci){
        println(i)
        //打印的时候,调Next方法,next方法把我们刚刚设置给next的方法返回
        //直到循环厕所超过100的时候,跳出
        if (i > 100)break
    }
}

/**
 * 基于协程API构建
 * 斐波拉契
 * 这个玩意是无穷尽的
 */
val fibonacci = buildSequence {
    yield(1)
    //调这个值的时候,先把1赋给next
    var cur = 1
    var next = 1

    while (true){
        yield(next)
        //协程被挂起
        val tmp = cur + next
        cur = next
        next = tmp
    }
}

如果不是很理解斐波拉契序列的话,请参考下以下的维基百科:
斐波拉契序列

目录
相关文章
|
Java 数据库 Android开发
【专栏】Kotlin在Android开发中的多线程优化,包括线程池、协程的使用,任务分解、避免阻塞操作以及资源管理
【4月更文挑战第27天】本文探讨了Kotlin在Android开发中的多线程优化,包括线程池、协程的使用,任务分解、避免阻塞操作以及资源管理。通过案例分析展示了网络请求、图像处理和数据库操作的优化实践。同时,文章指出并发编程的挑战,如性能评估、调试及兼容性问题,并强调了多线程优化对提升应用性能的重要性。开发者应持续学习和探索新的优化策略,以适应移动应用市场的竞争需求。
731 5
|
传感器 Android开发 开发者
构建高效Android应用:Kotlin的协程与Flow
【4月更文挑战第26天】随着移动应用开发的不断进步,开发者寻求更简洁高效的编码方式以应对复杂多变的业务需求。在众多技术方案中,Kotlin语言凭借其简洁性和强大的功能库逐渐成为Android开发的主流选择。特别是Kotlin的协程和Flow这两个特性,它们为处理异步任务和数据流提供了强大而灵活的工具。本文将深入探讨如何通过Kotlin协程和Flow来优化Android应用性能,实现更加流畅的用户体验,并展示在实际开发中的应用实例。
|
安全 Android开发 开发者
构建高效Android应用:Kotlin与协程的完美结合
【2月更文挑战第30天】在移动开发领域,性能优化和流畅的用户体验是关键。本文深入探讨了如何通过结合Kotlin语言和协程技术来提升Android应用的性能和响应能力。我们将分析Kotlin的优势,介绍协程的基本概念,并通过实际案例展示如何在应用中实现协程以简化异步编程,从而提供更加高效的解决方案。
|
传感器 数据采集 监控
Python生成器与迭代器:从内存优化到协程调度的深度实践
简介:本文深入解析Python迭代器与生成器的原理及应用,涵盖内存优化技巧、底层协议实现、生成器通信机制及异步编程场景。通过实例讲解如何高效处理大文件、构建数据流水线,并对比不同迭代方式的性能特点,助你编写低内存、高效率的Python代码。
459 0
|
Java 编译器 测试技术
Kotlin31 协程如何与 Java 进行混编?
Kotlin31 协程如何与 Java 进行混编?
481 2
Kotlin31 协程如何与 Java 进行混编?
|
JSON 调度 数据库
Android面试之5个Kotlin深度面试题:协程、密封类和高阶函数
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点。文章详细解析了Kotlin中的协程、扩展函数、高阶函数、密封类及`inline`和`reified`关键字在Android开发中的应用,帮助读者更好地理解和使用这些特性。
685 1
|
调度 开发者 UED
Kotlin 中的协程是什么?
【8月更文挑战第31天】
1711 1
|
PHP 数据库 开发者
探索PHP中的协程:生成器与异步编程
在PHP的世界中,协程的概念虽然不像在Python等语言中那样广为人知,但它的存在为异步编程带来了新的可能。本文将深入探讨PHP中的协程概念,特别是生成器(Generators)如何实现协程模式,以及这一机制如何被应用于异步编程,从而提升PHP应用的性能与响应能力。我们将通过实例和代码示例,展示如何利用这些特性来构建更加高效、非阻塞的PHP应用程序。
|
调度 Python
python3 协程实战(python3经典编程案例)
该文章通过多个实战案例介绍了如何在Python3中使用协程来提高I/O密集型应用的性能,利用asyncio库以及async/await语法来编写高效的异步代码。
595 0
|
存储 Java 调度
Android面试题之Kotlin 协程的挂起、执行和恢复过程
了解Kotlin协程的挂起、执行和恢复机制。挂起时,状态和上下文(局部变量、调用栈、调度器等)被保存;挂起点通过`Continuation`对象处理,释放线程控制权。当恢复条件满足,调度器重新分配线程,调用`resumeWith`恢复执行。关注公众号“AntDream”获取更多并发知识。
719 2