Lua--协同线程与文件IO
📅 2026/7/6 3:53:56
👁️ 次浏览
协同线程Lua中有一种特殊的线程称为coroutine协同线程简称协程。其可以在运行时暂停执行然后转去执行其他线程然后可以返回再继续执行没完成的内容。即可以“走走停停停停走走”。任意时刻只会有一个协程执行不会出现多个协程同时执行的情况。协同线程的类型为thread其启动、暂停、重启等通过函数来控制具体方法如下-- 创建一个协同线程实例 co coroutine.create(function(a,b) print(a,b,ab) -- 获取正在运行的协同线程实例 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,ab) local co coroutine.running() print(coroutine.status(co)) coroutine.yield() print(协同线程恢复了) print(a,b,ab) end) -- 调用协同函数启动协同线程 co(1,2) co()运行结果如下文件IO文件IO的函数分为两类静态函数与实例 函数。静态函数通过io.xxx()方式对文件进行操作。实例函数通过面向对象的方式操作。常用静态函数io.open() 以指定模式打开文件返回文件对象。格式io.open(filename,mode)模式mod有三种r:只读默认模式w只写会覆盖原内容a只写追加写入增加符在r ,w,a均变为了读写b二进制符如果文件为二进制文件。则需要变为rb、wb、abio.input() 指定要读取的文件格式io.input(file)io.output() 指定要写入的文件格式:io.outputfileio.read() 以指定格式读取io.input(file)中的内容。格式io.read(format)format 的格式有*l从当前位置的下一个位置读取整行默认格式*n读取下一个数字*a从当前位置的下一个位置读取整个文件number这是一个数字表示要读取的的字符的个数io.write(data) 将数据data写入到io.output中指定的文件-- 以只读方法打开一个文件 local file io.open(test.txt,r) io.input(file) -- 读取文件内容并输出 local content io.read(*a) print(content) -- 关闭文件 file:close()-- 以只读方法打开一个文件 local file io.open(test.txt,r) io.input(file) -- 读取文件内容并输出 local content io.read(*a) print(content) -- 关闭文件 file:close() -- 以追加方法打开一个文件 local file io.open(test.txt,a) io.output(file) -- 向文件中写入内容 io.write(这是追加的内容\n) -- 关闭文件 file:close()常用实例函数file:read() 这里的file是io.open() 返回的file用法与io.read()相同file:write()与io.write()相同file:seek()获取或设置文件读写指针的位置。位置从1开始除文件最后一行外每行都有行结束符其占两个字符位置。位置0 表示文件第一个位置。格式file:seek(whence,offset)当seek无参时返回读写指针的位置。参数whence有三种表示将指针定位到不同位置。参数offset 表示相对于whence 位置的偏移量offset默认0为正表示向后偏移为负表示向前偏移。 whence的三种值1. set将指针定位到文件开头处即0位置处2. cur指针保持当前位置不变默认3. end将指针定位到文件结尾处-- 以只读方法打开一个文件 file io.open(test.txt,r) -- 读取文件内容并输出 local content file:read(*a) print(content) -- 关闭文件 file:close() -- 以追加方法打开一个文件 file io.open(test.txt,a) -- 向文件中写入内容 file:write(这是追加的内容\n) -- 关闭文件 file:close() file io.open(test.txt,r) pos file:seek() print(当前文件指针位置..pos) -- 将文件指针移动到文件开头 file:seek(set,0) pos file:seek() print(当前文件指针位置..pos) -- 将文件指针移动到文件末尾 file:seek(end,0) pos file:seek() print(当前文件指针位置..pos)
声明:本文仅用于技术交流与安全防御研究,请勿用于非法用途。一、这篇文章讲什么?很多新手拿到 MSF(Metasploit Framework)不知道从哪里开始。这篇文章不讲复杂原理,只讲怎么一步步用 MSF 拿到一台 Linux 服…
📅 2026/7/6 3:53:56
Anthropic 最新模型 Fable 5 被称为「agentic coding 的分水岭」。本文拆解 Thariq(Claude Code 核心开发者)分享的 8 个实战技巧,教你如何用 Fable 5 真正提效,附完整 Prompt 模板。 前言
2026 年,Anthropic 放出了代…
📅 2026/7/6 3:53:56
开过咖啡店、装过联合办公、做过商业展厅的朋友都懂,配电布局绝对是装修前期最容易踩的坑:插座布少了,后期加设备要拖插排乱不说,还容易过载跳闸;布多了,闲置的插座丑还浪费钱,换个业态还要砸墙…
📅 2026/7/6 3:53:56
🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 之前在学习强化学习时,常常被各种算法名词和复杂的公式劝退,网上资料要么过于理论,要么代码零散不…
📅 2026/7/6 5:12:11
1. 项目概述:为什么你的Linux环境总感觉“漏风”?每次看到服务器日志里那些可疑的登录尝试,或者听说同行因为一个配置疏忽导致数据泄露,你是不是也会心头一紧?我维护过上百台生产环境的Linux服务器,从早期的…
📅 2026/7/6 5:12:11
文章目录TikTok Scraper:无需登录,批量抓取 TikTok 数据的命令行工具TikTok Scraper:无需登录,批量抓取 TikTok 数据的命令行工具 TikTok Scraper 是一个开源的 Node.js 工具,在 GitHub 上获得了 5000 多个 Star。它的…
📅 2026/7/6 5:12:11
Axure中文界面全攻略:3步实现完美汉化,告别英文菜单困扰 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn
…
📅 2026/7/6 5:12:11
三者区别桥连模式NAT模式仅主机ip网段与物理机同网段vmware独立虚拟网段独立隔离网段,无法连接外网访问宿主机互通互通互通访问局域网其他电脑能访问不能不能访问互联网可直接上网通过宿主机ip上网,这时的vm扮演网关的角色,虚拟机向vm提出请求…
📅 2026/7/6 5:12:11
3分钟自动化学习解决方案:解放职业教育重复性任务的智能助手 【免费下载链接】auto-play-course 简单好用的刷课脚本[支持平台:职教云,智慧职教,资源库] 项目地址: https://gitcode.com/gh_mirrors/hc/auto-play-course
从手动操作到自动化管理的技术演进
在…
📅 2026/7/6 5:10:11
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray
你是否厌倦了Windows任务栏上密密麻麻的图标&…
📅 2026/7/6 0:01:19
1. 项目概述:一次对React Server Components核心安全机制的深度剖析 最近在安全研究圈里,CVE-2025-55182这个编号被频繁提及,它直指React生态中一个相对较新的概念——React Server Components(RSC)。作为一个长期关注…
📅 2026/7/6 0:01:20
星露谷物语终极MOD指南:5个步骤打造智能自动化农场 【免费下载链接】StardewMods Mods for Stardew Valley using SMAPI. 项目地址: https://gitcode.com/gh_mirrors/st/StardewMods
你是否厌倦了在星露谷物语中重复收割、加工、存储的繁琐操作?梦…
📅 2026/7/6 0:01:20
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/5 0:01:51
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/5 0:01:51
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/5 0:01:51
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/5 6:01:04
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/5 6:01:04
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/5 23:45:08