"); //-->
10分钟学会LuatOS协程,从此你的程序也能像通勤族利用碎片时间一样游刃有余。现在就去动手试一试,开启异步编程新体验!写给第一次听说协程的你:别怕!协程不是复杂概念,看完这篇,10分钟就能上手写代码~
1、协程是什么?——小白秒懂版
场景:小明一边写作业,一边等外卖:
普通做法:写5分钟作业→开门看外卖→再写5分钟→再去看外卖...(效率低)
协程做法:
协程A(写作业):写5分钟 → 暂停,去检查外卖
协程B(等外卖):听到敲门声 → 继续写作业
简而言之,协程的本质是让代码学会“暂停-继续”,像切换作业和外卖一样切换任务!
2 、极简三步写出第一个协程
第1步:创建协程 → sys.taskInit()
划重点:
sys.taskInit(函数) 用来包裹你的任务代码;
sys.wait(时间) 是暂停协程的“魔法”。
第2步:再创建一个协程
第3步:启动所有协程 → sys.run()
新手避坑指南:
忘记写sys.run() → 所有协程都不会运行!
sys.wait()没写 → 协程会“卡死”其他任务。
3、查看运行结果
你会在控制台看到:
发现了吗?
两个任务在自动交替执行;不用写复杂的时间管理代码!
4、实战试练:手机同时下载和听歌
1)应用需求:
下载任务:每3秒下载1%;
听歌任务:每1秒显示歌词。
2)代码实现:
3)输出效果:
关键理解:
下载任务暂停的3秒里,CPU自动去执行歌词任务;
协程之间不会互相阻塞!
5、小白常见问题
1)为什么我的协程不执行?
检查三件套:
是否用sys.taskInit()包裹了代码?
协程里有没有写sys.wait()?
代码最后有没有加sys.run()?
2)协程和函数有什么区别?
普通函数:一旦调用,必须从头执行到结束(像必须一口气跑完100米)。
协程:可以跑10米→暂停→去跑另一个任务→回来继续(像随时暂停的接力赛)。
3)一个协程里能写多个sys.wait()吗?
当然可以!
今天的内容就分享到这里了~即刻启动你的“任务切换器”协程,动手试试吧!
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。