进程: 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 import multiprocessing,threading,time 5 6 def run(name): 7 t=threading.Thread(ta ...
分类:
编程语言 时间:
2017-06-25 00:17:41
阅读次数:
228
local function param_pack( params, callback ) local host = params[1] local service = table.remove(params, 2) table.insert(params, callback) return hos... ...
分类:
其他好文 时间:
2017-06-23 19:23:20
阅读次数:
197
仿制云风的协程库的接口设计,我花了一个下午加晚上的时间重构了之前写的协程库,提供的接口现在和云风大大的协程接口一模一样,都是仿制lua的非对称协程。我们依旧没有用ucontext.h组件(用ucontext.h组件实现协程的文章铺天盖地,可以自行寻找,用longjmp实现就少很多,用内联汇编实现的就 ...
分类:
编程语言 时间:
2017-06-23 13:07:27
阅读次数:
218
同步异步I/O客户端 协程 1、编写协程函数 2、调用协程函数 由于Tornado协程基于python的yield关键字实现,所以不能调用普通函数一样调用协程函数 协程函数可通过以下三种方式调用 在本身是协程的函数内通过yield关键字调用 在IOLoop尚未启动时,通过IOLoop的run_syn ...
分类:
其他好文 时间:
2017-06-23 10:14:24
阅读次数:
210
这里创建了两个greenlet协程对象,gr1和gr2,分别对应于函数test1()和test2()。使用greenlet对象的switch()方法,即可以切换协程。上例中,我们先调用”gr1.switch()”,函数test1()被执行,然后打印出”12″;接着由于”gr2.switch()”被调 ...
分类:
编程语言 时间:
2017-06-22 23:48:51
阅读次数:
245
解释下,”gevent.spawn()”方法会创建一个新的greenlet协程对象,并运行它。”gevent.joinall()”方法会等待所有传入的greenlet协程运行结束后再退出,这个方法可以接受一个”timeout”参数来设置超时时间,单位是秒。运行上面的程序,执行顺序如下: 所以,程序运 ...
分类:
编程语言 时间:
2017-06-22 23:47:57
阅读次数:
283
错误写法 按照一般的方法return会报错 需要使用 raise gen.Return(response.body) 代替return 官方例子 In Python 3.3, this exception is no longer necessary: the return statement ca ...
分类:
编程语言 时间:
2017-06-21 18:16:20
阅读次数:
130
因为一个朋友最近想搞接口压力测试,推荐了jmeter,因为jmeter开源,且有命令行启动模式,方便封装。兴起时,自己也简单实现了一下高并发的脚本。 采用的是多进程+多线程+协程。想法是这样的,多进程是为了有效利用多核,理论上最好一个核对应一个进程比较好;那我为什么还要用多线程呢?不怕GIL全局锁吗 ...
分类:
编程语言 时间:
2017-06-21 15:57:16
阅读次数:
238
恢复内容开始 编程笔记 override与new实现的版本控制 问题:将借口的类型作为返回对象是什么意思。。。 问题在下一个章节的解答中。 就是迭代器的实现,用来和foreach来匹配 另外Unity里的协程用到的也是迭代器的方法。 上个示例代码 关于结构和类: 起码的一点,结构是值类型,类对象是引 ...
首先了解 1.iterator iterator叫做迭代器,用来遍历可以序列化的数据,比如一个list,set 等,当然如果对象想要能够使用迭代器来遍历,只要在该对象的类中添加__iter__()方法,该方法返回一个迭代器对象,迭代器对象中需要实现next()方法 for example: 执行方法 ...
分类:
其他好文 时间:
2017-06-19 19:34:48
阅读次数:
169