- 浏览: 769146 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
local function f(a) local thread = coroutine.running() ngx.say("status:",coroutine.status(thread)) ngx.say("1") coroutine.yield() ngx.say("2") coroutine.yield() end local function ff(a) ngx.say("ff:",a) end local curr = coroutine.create(f) ngx.say("return type(create()):",type(curr)) ngx.say("status:",coroutine.status(curr)) ngx.say("resume 1") coroutine.resume(curr) ngx.say("status:",coroutine.status(curr)) ngx.say("resume 2") coroutine.resume(curr) --和create类似,返回函数用起来方便一些,但不返回错误码,无法检测运行时错误 local wrap_fun = coroutine.wrap(ff) ngx.say("return type(wrap()):",type(wrap_fun)) wrap_fun(3) return type(create()):thread status:suspended resume 1 status:running 1 status:suspended resume 2 2 return type(wrap()):function ff:3
co = coroutine.create(function () print("hello") end) print(co) print(coroutine.status(co)) coroutine.resume(co) print(coroutine.status(co)) function test_loop() for i=1,3 do print(coroutine.status(co)) print(i) coroutine.yield() end end co = coroutine.create(test_loop) coroutine.resume(co) coroutine.resume(co) thread: 0x67a5ef60 suspended hello dead running 1 running 2
发表评论
-
mac nginx启动
2021-01-15 10:10 404brew services start nginx 1.1 ... -
nginx与lvs的异同
2017-11-30 11:51 918http://blog.csdn.net/BuquTianya ... -
lua weak表与gc
2017-11-29 09:56 562local a = {} local b = {} s ... -
lua single-method
2017-11-29 09:49 520local function newObject (val ... -
lua ffi
2017-11-16 11:33 608testlib.c #include <stdio. ... -
lua unpack
2017-11-09 11:07 392unpack接受一个数组作为输入参数,返回数组的所有元素。被用 ... -
resty thread
2017-07-07 14:35 370local t = {} local functio ... -
resty 正则
2017-07-04 17:32 457local m, err = ngx.re.match(& ... -
Nginx Lua脚本执行顺序
2017-06-15 09:11 856[img] [/img] -
ngx timer
2017-05-20 08:11 465local delay=3 local handle ... -
openresty文件自适应
2017-05-18 14:14 492location ~ ^/([-_a-zA-Z0-9/]+ ... -
lua_shared_dict
2017-05-18 12:01 22891.定义一块名为my_cache的共享内存空间,内存大小为si ... -
lua loadstring
2016-11-29 10:08 830loadstring 不会有边界效应产生,他仅仅编译 chun ... -
lua book
2016-05-05 10:26 455http://lua.ren/topic/157/lua书 -
lrucache
2016-04-19 16:21 611local _M = {} --local lruc ... -
openresty资料
2016-03-15 09:57 864视频 http://study.163.com/course/ ... -
openresty缓存
2016-03-09 15:12 1123shared dict:这个cache是nginx所有work ... -
cjson
2016-03-07 10:42 564local json = require("cj ... -
nginx使用lua文件
2016-03-02 10:13 683location /test_var { con ... -
获取 uri 参数
2016-02-23 11:38 407location /test { c ...
相关推荐
Lua 协程(Coroutine)是轻量级的并发机制,它们提供了一种方式来暂停和恢复函数执行,而无需线程上下文切换的开销。在 Lua 中,协程是通过 `coroutine` 库提供的,它包含 `create`, `resume`, `yield` 和 `status` ...
标题中的“testco.zip_lua coroutine”表明这是一个关于Lua协程(coroutine)的测试压缩包,可能包含了用于演示或教学的代码示例。描述中提到的“test for lua coroutine and linux makecontext”揭示了测试的两个...
下面将详细介绍Lua协程的创建、状态以及`yield`函数的使用。 ### 协程的创建 在Lua中,我们使用`coroutine.create`函数来创建一个协程。这个函数接受一个函数作为参数,这个函数将成为协程的主体。例如: ```lua ...
Lua Coroutine,协程详解,lua 基本础,The Programming Language Lua
LuaJIT的协程(coroutine)功能是LuaAsio的关键所在。协程是一种轻量级的并发机制,它们不像线程那样需要上下文切换的开销,可以在单线程环境中实现协作式多任务。 LuaAsio通过将Boost.Asio的异步操作与LuaJIT的...
在AI系统中,lua协程(coroutine)是实现异步和并发执行的关键工具。 lua协程是lua中的一种轻量级线程,它们不像传统的线程那样需要系统级别的调度,而是由用户代码控制其执行流程。协程可以暂停和恢复执行,这使得...
协程 具有固定大小堆栈的非对称协程(类似 lua) 通过使用“ucontext”机制,堆栈大小在源代码中固定为 64KB,您可以在其中修改它。 现在支持linux(32&64)和win32,x86下测试。
### Lua基础教程(十六)协程详解 #### 协程概念 协程是Lua语言中一个重要的编程特性,它提供了一种控制程序执行流程的方法。与传统的子程序调用不同,协程支持程序间的协作执行,允许多个执行流程以受控的方式交替...
6. **并发与协程**:Lua的协程(coroutine)提供了一种轻量级的并发模型,使得在单线程环境中实现并发变得简单。书中会详细介绍协程的工作原理和应用实例。 7. **嵌入与扩展**:Lua的设计初衷就是作为嵌入式脚本...
1. **异步I/O**:Lua的coroutine(协程)配合Nginx的事件模型,可以实现非阻塞的I/O操作,例如异步访问数据库。 2. **Lua库集成**:通过luarocks安装第三方Lua库,如lua-cjson用于JSON操作,lua-resty-http进行HTTP...
通过深入学习《Lua中文手册》,你可以掌握Lua的高级特性,如元编程、协程(coroutine)以及对C语言的接口(C API)进行扩展,进一步提升你的编程能力。 总结,Lua是一种强大的脚本语言,适用于游戏开发、自动化任务...
Lua是一门简单而强大的轻量级脚本语言,它采用了协程(coroutine)这种高级特性来支持协作式的多任务处理。在多线程编程中,协程为需要频繁切换上下文的场景提供了一种更为经济的并发机制。Lua的协程库是对协作式多...
由于Lua协程的轻量级特性,它能够大幅降低系统资源消耗,尤其适合用在高并发的网络服务中。 在实际的应用中,OpenResty和Lua的结合对于Web开发人员来说是一个极大的福音。它不仅提高了Nginx的动态性、灵活性和功能...
5. **Lua的事件驱动编程**:跑马灯效果通常涉及到定时更新,这在Lua中可以通过定时器或者协程(coroutine)实现。定时器可以设定一个时间间隔后执行特定的函数,而协程则可以在执行过程中暂停和恢复,这对于创建非...
虽然Lua自身并不直接支持多线程,但可以通过协程(coroutine)来实现轻量级的并发。协程允许在单个线程内实现多任务切换,这对于某些场景下的并行处理非常有用。 最后,读者还能学到如何使用Lua进行游戏开发。Lua因...
10. **协程(Coroutine)**:LUA支持轻量级的并发模型——协程。协程可以理解为合作式的线程,它们在单个线程中交替执行,提供了异步编程的能力。 通过阅读《LUA编程(programming in lua).pdf》,开发者不仅能了解LUA...
6. **13_协程.lua**:Lua的协程(coroutine)是一种轻量级的线程,可以在运行时切换,而不会丢失上下文。协程通过coroutine.create、coroutine.resume、coroutine.yield和coroutine.status等函数实现协同多任务。 7...
4. 协程的加入:Lua 5.0 添加了协程(Coroutine)的概念,这是一种轻量级的并发模型,允许程序在不同执行流之间切换。尽管协程的概念并不新颖,但Lua 5.0 的实现使得协程易于理解和使用,有助于提升复杂程序的并行性...
在Lua中,`coroutine.create`用于创建一个协程,`coroutine.resume`用于恢复并执行协程,`coroutine.yield`用于暂停当前协程并返回控制权。 2. **C#多线程**:C#作为.NET框架的一部分,提供了丰富的多线程支持,如`...
9. **线程和协程**:Lua的协程(coroutine)是一种轻量级的并发机制,可以实现异步编程而无需多线程的复杂性。 10. **社区资源**:`www.luaer.cn`可能是lua在中国的社区网站,可能提供更多的学习资源、示例代码和...