LuatOS中,8910 API新增的sysplus接口主要用于Luat协程调度框架,它提供了一系列功能强大的接口来管理和调度协程任务,从而优化程序的执行效率和响应性。
具体来说,sysplus接口的主要用途包括:
-
任务创建与初始化:通过
sysplus.taskInitEx(fun, taskName, cbFun, ...)
接口,用户可以创建一个新的任务线程,并在模块的最末行调用该函数来注册模块中的任务函数。这样,当main.lua导入该模块时,这些任务就会被自动初始化并准备执行。 -
任务删除:
sysplus.taskDel(taskName)
接口允许用户删除之前通过taskInitEx
创建的任务线程。这有助于管理任务的生命周期,避免不必要的资源占用。 -
消息等待与接收:
sysplus.waitMsg(taskName, target, ms)
接口允许任务等待并接收一个目标消息。用户可以指定任务名称、目标消息和等待的超时时间(以毫秒为单位)。如果在指定的时间内成功接收到目标消息,则返回该消息;如果超时,则返回false。 -
消息发送:
sysplus.sendMsg(taskName, param1, param2, param3, param4)
接口允许用户向指定的目标任务发送一个消息。用户可以传递最多四个参数给目标任务。如果消息成功发送,则返回true;否则,返回false。
这些接口共同构成了一个灵活的协程调度系统,使得开发者能够更加高效地管理和调度程序中的任务,提高程序的并发性和响应性。
一、创建一个任务线程
sysplus.taskInitEx(fun, taskName, cbFun, …)
创建一个任务线程,在模块最末行调用该函数并注册模块中的任务函数,main.lua导入该模块即可
- 参数
- 返回值
co 返回该任务的线程号
- 例子
sysplus.taskInitEx(task1,'a',callback)
二、删除由taskInitEx创建的任务线程
sysplus.taskDel(taskName)
- 参数
- 返回值
无
- 例子
sysplus.taskDel('a')
三、等待接收一个目标消息
sysplus.waitMsg(taskName, target, ms)
- 参数
- 返回值
msg or false 成功返回table型的msg,超时返回false
- 例子
sysplus.waitMsg('a', 'b', 1000)
四、向目标任务发送一个消息
sysplus.sendMsg(taskName, param1, param2, param3, param4)
- 参数
- 返回值
true or false 成功返回true
- 例子
sysplus.sendMsg('a', 'b')
详细资料请点击: www.openluat.com