这是第五篇的后续,紧接上一篇的末尾,我们把 Windows 和 Linux 下的休眠策略归纳总结一下。我们可以看到,Linux 下的 sched_yield() 虽然包括了 Windows 下的 Sleep(0) 和 SwitchToThread() 的部分功能(图中蓝色框和虚线框所标注的部分),但...
分类:
其他好文 时间:
2015-01-31 00:07:37
阅读次数:
309
本文内容 枚举器 enumerator 接口 可枚举 enumerable 接口 产生类型 yield type 枚举器 enumerator 对象 可枚举 enumerable 对象 示例 参考资料 使用迭代器块实现的函数成员称为迭代器 (iterator)。 只要相应函数成员的返回类型是枚举器接...
参考:http://blog.csdn.net/scelong/article/details/6969276Python生成器什么是python生成器,意思是带有一个yield语句的函数,既然它是个函数,那么与普通的函数有什么关系呢?生成器是这样一个函数:记住上一次返回时在函数体中的位置。对生成器...
分类:
编程语言 时间:
2015-01-28 17:40:50
阅读次数:
157
昨天主要了解了下生成器,用文档测下lines:
def lines(file):
for line in file: yield line
yield '\n'
for i in lines(sys.stdin):
if i:
print i
print '---'
测试文档test_input.txt:
hello
how are you
how do you...
分类:
编程语言 时间:
2015-01-25 15:19:43
阅读次数:
206
Lua的coroutine跟thread的概念比较相似,但是也不完全相同。一个multi-thread的程序,可以同时有多个thread 在运行,但是一个multi-coroutines的程序,同一时间只能有一个coroutine在运行,而且当前正在运行的coroutine只有在被显式地要求挂起时,...
分类:
编程语言 时间:
2015-01-22 21:37:36
阅读次数:
222
producer =coroutine.create(function () --生产者 while true do local x = io.read() --生产新的值 send(x) --发送给消费者 endend)fun...
分类:
其他好文 时间:
2015-01-22 20:12:38
阅读次数:
148
--[[协同程序的四种状态挂起(suspended)、运行(running)、死亡(dead)和正常(normal)status yield --挂起程序coroutine.create(function(a, b, c) --coroutine.resume(co, 1, 2, 3) 分别把1,....
分类:
其他好文 时间:
2015-01-22 19:54:41
阅读次数:
165
12.3.1 用迭代器转换序列
到目前为止,我们只是用迭代器,从一段数据(如果有的话)生成序列。然而,迭代器通常用来以某种方式,进行序列的转换。作为一个简单的例子,这里有一个方法,把数字序列转换成平方序列:
IEnumerableSquares(IEnumerable numbers) {
foreach(int i in numbers)
yield return i...
分类:
其他好文 时间:
2015-01-22 18:20:34
阅读次数:
187
12.2.1 递归的序列表达式
函数式编程中主要的控制流结构是递归。我们已经在很多例子中,写的普通函数就使用过递归,它能够解决命令式编程中的循环问题,而不需依赖可变状态。当我们想写一个简单的递归函数时,要使用 let rec 关键字,这样,就能函数以递归方式调用自身。
用于组合序列的 yield! 结构,也可以在序列表达式中执行递归调用,所以,我们同样可以使用函数编程的方法,生成序列。清...
分类:
其他好文 时间:
2015-01-21 16:37:06
阅读次数:
152
preface:在前进的路上遇到的python各种小函数技巧积累。
enumerate:枚举
format:格式化输出。
对字符串进行输出时,print加逗号可破,但当字符串变量多了起来的时候,同字符串常量放在一起,逗号就变多了。不太方便。通过format类进行格式化,将变量都放在一起,能够更加方便地控制输出格式。具体的fomat语法说明网上博客也是一大堆,如http://www.2cto....
分类:
编程语言 时间:
2015-01-21 00:01:18
阅读次数:
337