当前位置: 首页 > news >正文

协同线程与协同函数

Lua中有一种特殊的线程,称为coroutine,协同线程,简称协程。

其可以在运行时暂停执行,然后转去执行其他线程,然后可以返回再继续执行没完成的内容。即可以“走走停停,停停走走”。

任意时刻只会有一个协程执行,不会出现多个协程同时执行的情况。

协同线程的类型为thread,其启动、暂停、重启等,通过函数来控制,具体方法如下:

-- 创建一个协同线程实例 co = coroutine.create(function(a,b) print(a,b,a+b) -- 获取正在运行的协同线程实例 local co = coroutine.running() -- 输出协同线程实例的状态 print(coroutine.status(co)) -- 将当前协同线程挂起 coroutine.yield() print("协同线程恢复了") end) -- 启动协同线程 coroutine.resume(co,1,2) -- 输出协同线程的状态 print("主线程查看协同线程状态:"..coroutine.status(co)) -- 恢复协同线程的运行,不传后面的参数了,因为协同线程已经挂起了 coroutine.resume(co) -- 输出协同线程的状态 print("主线程查看协同线程状态:"..coroutine.status(co))

运行结果如下:

协同函数

协同线程可以单独创建执行,也可以通过协同函数调用启动执行。

使用coroutine的wrap()函数创建的就是协同函数,类型为function。

协同函数的调用会启动其内置的协同线程。

-- 创建一个协同函数 co = coroutine.wrap(function(a,b) print(a,b,a+b) local co = coroutine.running() print(coroutine.status(co)) coroutine.yield() print("协同线程恢复了") print(a,b,a+b) end) -- 调用协同函数,启动协同线程 co(1,2) co()

运行结果如下

文件IO

文件IO的函数分为两类:静态函数与实例 函数。

静态函数:通过io.xxx()方式对文件进行操作。

http://www.jsqmd.com/news/1078884/

相关文章:

  • 【JetBrains认证工程师亲授】:Ubuntu下IntelliJ IDEA免sudo安装+全局命令行启动+Shell集成三步到位(实测11种发行版兼容)
  • 【软工方法论22】代码重构原则与实践
  • 还在用 SSMS 手动导入 Excel?这款插件让 SQL Server 数据导入效率提升 10 倍(支持 Upsert + 大数据流式导入)
  • V 语言精选资源库
  • Kubernetes Pod 完全指南:从入门到实战,轻松掌握容器编排核心
  • 【题目讲解】 算法系列之定长类滑动窗口解析(上)
  • 拆解RAG分层架构:文档解析、切片、向量检索、问答逻辑解耦(原理+案例+Java代码)
  • 截断流Witt代数的模表示:基于p-特征与高度的简单模分类与构造
  • Go语言的sync.RWMutex读写锁升级与降级在并发访问模式变化中的限制
  • 2026 洗衣液十大名牌最新资讯汇总 主流品牌定位与家用场景指南
  • 分类评估指标实战指南:从混淆矩阵到业务价值落地
  • 高维点集密度分析:Jensen不等式与凸性原理的应用
  • 配置wsl记录(坎坷版)
  • Python 百年奥运数据分析实战|Pandas 清洗 + Matplotlib/Pyecharts 可视化 + 拖拽大屏完整项目(附源码)
  • GoGoGo虚拟定位:Android位置模拟技术的深度解析与实践指南
  • 震惊!小程序开发公司选错就亏大了,这3点你必须知道!
  • 自由职业者-技术顾问的生存指南:找客户与项目管理
  • 抖音无水印视频下载终极指南:3分钟搞定批量下载与智能管理
  • Apple Silicon Mac 电池健康管理终极指南:开源架构设计与实现原理
  • WorkBuddy自动化实战:手把手教你设置第一个定时任务
  • GraalVM原生镜像构建实战:十分钟让你的Java应用启动速度快100倍
  • 对黑马点评中Redis缓存穿透与击穿解决方案的小理解
  • 2026年国内口碑较好的工艺品设计平台有哪些值得关注
  • BLE Legacy 广播【广播使能】
  • Aeroblade空气动力学设计:从原理到工程实践
  • 代码质量工具静态分析与动态检测
  • 文件包含漏洞之原理、探测、利用、绕过、防御
  • VMware虚拟机导出OVF:绕过ovftool命令行的3种GUI替代方案,小白也能10分钟完成合规打包
  • Spring Cloud 服务注册与发现原理
  • 嵌入式无线通信自动化测试与协议分析实战指南