- 浏览: 73031 次
- 性别:
- 来自: 杭州
最新评论
coroutine (通常被译为“协作程序”或"共行程序“)是程序设计中一个非常重要的概念,通常可用于多任务协作处理、迭代器和管道中。它最早出现于”Design of a Separable . Transition -Diagram Compiler “这篇论文中,taocp (the art of computer programming)第一卷1.4.2节也对这个概念进行简单的讲解。Building Coroutines 用图示来说明coroutine的概念。c语言中实现coroutine有以下几种方法:
(2)使用c标准库的setjmp和longjmp函数,例如:
Coroutines in less than 20 lines of standard C
(3)unix/linux等遵守posix规范的系统提供了getcontext, setcontext, makecontext and swapcontext ,可以用来实现coroutine
(4)其他一些coroutine库,例如:libtask ,libpcl ,libCoroutine ,coro ,libconcurrency ,libcoro
发表评论
-
最小c编译器
2011-11-08 14:09 1491最小c编译器(来源 (最好在linux下操作))代码有好几个 ... -
the development of c language(转)
2011-11-08 09:25 1318c语言之父Dennis Ritchie 写的关于c语言开发历 ... -
C语言,你真的弄懂了么?
2011-11-07 12:42 1774程序(来源 ): #include <stdi ... -
pe文件格式实例解析
2011-11-07 10:05 0环境:windows xp 速龙3000+(即x86兼容32位 ... -
小型elf "Hello,World"程序
2011-11-06 23:59 1379参考链接:http://timelessname.com/el ... -
elf文件格式实例解析
2011-11-05 23:00 6364试验环境:archlinux 速龙3000+(即x86兼 ... -
高质量的c源代码
2011-11-03 10:18 1169现在自由软件及开源软件越来越流行,有大量的附带源程序 ... -
fltk 库
2011-09-26 19:47 1847fltk是一个小型、开源、支持OpenGL 、跨平台(win ... -
《Introduction to Computing Systems: From bits and gates to C and beyond》
2011-09-25 23:33 2189很好的一本计算机的入门书,被很多学校采纳作为教材,作者Yale ... -
csapp bufbomb实验
2011-09-16 14:21 4632csapp (《深入理解计算机系统》)一书中有一个关于缓冲区 ... -
the blocks problem(uva 101 or poj 1208)
2011-09-11 20:57 1841题目描述见:uva 101 or poj 1208 ... -
the blocks problem(uva 101 or poj 1208)
2011-09-11 20:56 0题目描述见:uva 101 or poj 1208 ... -
部分排序算法c语言实现
2011-09-02 14:51 1024代码比较粗糙,主要是用于对排序算法的理解,因而忽略了边界和容错 ... -
编译器开发相关资源
2011-08-31 08:40 1215开发编译器相关的一些网络资源: how difficu ... -
zoj 1025 Wooden Sticks
2011-07-23 20:25 972题目见:zoj 1025 先对木棒按照长度进行排序,然后再计 ... -
zoj 1088 System Overload
2011-07-23 17:30 1177约瑟夫环 (josephus problem )问题, ... -
zoj 1091 Knight Moves
2011-07-23 09:05 853题目见zoj 1091 使用宽度搜索优先来求解, ... -
zoj 1078 palindrom numbers
2011-07-22 19:31 1152题目见zoj 1078 主要是判断一个整数在基数为2 ... -
zoj 1006 do the untwist
2011-07-22 13:24 944题目见zoj 1006 或poj 1317 简单 ... -
zoj 3488 conic section
2011-07-22 12:23 1015题目见zoj 3488 很简单的题目,却没能一次搞定,因 ...
相关推荐
AsyncDB是一个基于协程(Coroutine)和异步I/O(AsyncIO)的数据库访问库,结合了B-Tree数据结构的优势,旨在提供高效的、非阻塞的数据存取能力。这个开源项目的目标是为开发者提供一种更高效的方式来处理数据库操作,...
- 异步处理:搜索操作应在后台线程中执行,避免阻塞UI线程,可以使用AsyncTask、IntentService或现代的Coroutine框架。 - 分页加载:对于大量结果,使用分页策略减少一次性加载的数据量,提高用户体验。 - 缓存...
31. Coroutine(协同程序):一种程序执行方式,它允许在不同子程序之间主动让出控制权。 32. Counting semaphore(计数信号量):可以有多个值的信号量,允许多个进程同时访问共享资源。 33. Critical resource...
使用`coroutine.create`创建,`coroutine.resume`启动或恢复,`coroutine.yield`暂停协程,`coroutine.status`查询协程状态。 4. **闭包(Closures)** Lua中的闭包是函数和其相关的环境变量的组合,可以捕获和...
- **coroutine库**:协程是轻量级线程,可以使用coroutine.create()创建,coroutine.resume()恢复,coroutine.yield()挂起。 学习这些内容可以帮助你编写出更高效、更灵活的Lua代码,无论是进行游戏逻辑控制、配置...
8. **标准库更新**:许多标准库函数得到了更新和扩展,如`math`库增加了新的数学函数,`coroutine`库支持了更多的协作多任务功能。 9. **性能提升**:通过对语言内部结构的优化,Lua 5.2在执行速度上相比前一版本有...
该书通过一系列的小程序demo和深入讲解,覆盖了C++20的四个主要领域:协程(coroutine)、范围(range)、概念(concept)以及其他相关特性。它既适合英语学习,又可作为程序员的参考读物。 在C++20中,协程是一种...
LUA的协同程序(coroutine)是一种轻量级的并发机制,通过coroutine.create、coroutine.resume和coroutine.yield函数进行管理。虽然LUA不直接支持多线程,但在需要时,可以通过C/C++扩展或者配合外部库实现。 八、...
通过`coroutine.create`、`coroutine.resume`、`coroutine.yield`和`coroutine.wrap`等函数可以创建和控制协程。 9. **错误处理**:Lua使用`error`函数抛出错误,`pcall`和`xpcall`可以捕获并处理错误。 10. **...
这个脚本需要包含一个计时器、当前显示的字符索引以及一个方法来更新Text组件的内容。例如,可以创建一个Coroutine,每帧增加显示的字符数量,直到文本完全显示出来。 ```csharp using UnityEngine; using ...
这个"lua学习资料集锦"显然包含了丰富的资源,帮助初学者系统地学习和理解Lua语言。以下是一些关于Lua的基本知识点和核心概念: 1. **基本语法**:Lua具有简洁的语法,支持变量声明、流程控制(如if语句、for循环、...
- Lua 通过 `coroutine.create`、`coroutine.resume` 和 `coroutine.yield` 等函数来管理协程的生命周期。 - 协程状态的变化由 Lua 虚拟机跟踪管理,确保每次都能正确恢复执行位置。 - **应用场景**: - **异步...
这本书深入介绍了Lua语言的基础知识、语法特性以及高级编程技巧,是学习和理解Lua语言的重要资源。而XVM API v101则是一个用于World of Tanks游戏的扩展模块,它允许玩家通过Lua脚本来定制游戏界面、实现自定义统计...
2. **表与面向对象编程**:Lua的表可以看作是动态数组和哈希表的结合体,支持动态大小和索引。通过表,Lua实现了面向对象编程的机制,如原型继承和元表元方法,这使得Lua能适应各种不同的编程风格。 3. **垃圾回收*...
协程不像线程那样需要操作系统级别的调度,而是由程序控制,更节省资源。 9. **C语言接口** Lua提供了一个C API,使得C/C++程序可以嵌入Lua,或者用Lua来编写部分逻辑。这使得Lua成为理想的嵌入式脚本语言。 10. ...
Lua标准库不直接支持多线程,但在需要并发的场景下,可以利用cooperative multitasking(协同多任务)的coroutine(协程)实现轻量级的并发。 9. **脚本应用**: Lua广泛应用于游戏开发,如《魔兽世界》、《我的...
4. **索引优化**:利用Lua的元表(metatable)机制,可以创建自定义的索引和访问方法,提高查找效率。例如,通过哈希表实现快速定位,减少遍历时间。 5. **库的使用**:Lua社区有许多优秀的第三方库,如luajit(Lua...
`async def`用于定义协程(coroutine),而`await`则用于在协程内部等待异步操作的完成。这一改变极大地改善了处理I/O密集型任务时的性能和可读性。 其次,类型注解(Type Hints)在Python 3.5.2中得到了进一步的...
《Lua 5.0 实现原理剖析》 ...总结而言,《Lua 5.0 实现原理剖析》是一篇深入探讨Lua 5.0技术特性的文章,涵盖了虚拟机设计、散列表优化、闭包实现和协程的引入等多个关键领域,为理解Lua语言提供了宝贵的知识资源。
同时,由于它是异步的,因此可以结合Tornado的coroutine和future来编写非阻塞的代码,以充分利用多核处理器的并行能力。 在开发过程中,了解如何正确处理错误和异常是非常重要的,例如`pymongo.errors`模块中定义的...