回调函数是实现异步操作的常用手法

1、callback版本的示例,其中framework调用logic,在完成某些操作或者接收到信号后,用callback返回异步结果

#!/usr/bin/env python2.7

def framework(logic,callback):
s=logic()
print "[FX] logic:",s
print "[FX] do something..." for i in xrange(1000000):
a=i+1
callback("async:"+s) def logic():
s="mylogic"
return s def callback(s):
print s framework(logic,callback)

2、使用yield改进的blocking style版本:

#!/usr/bin/env python2.7
#-*- coding:utf8 -*- def framework(logic):
try:
it = logic()
s = next(it) print "[FX] logic:",s
print "[FX] do something" f=open("test.txt",'w')
for i in xrange(1000000000):
f.write(str(i)+'\n')
f.close() it.send("async:" + s)
except StopIteration:
pass def logic():
s = "mylogic"
r = yield s print r framework(logic)

最新文章

  1. jqgrid学习笔记(转载)
  2. Java日志——2016年5月30日
  3. zepto源代码解读
  4. 随机删除数据库N条记录
  5. UISegmentedControl swift
  6. 工作经常使用的SQL整理,实战篇(三)
  7. 《css定位 position》课程笔记
  8. JPA-学习02
  9. 10个JavaScript常见BUG及修复方法
  10. 事件代理on
  11. prometheus热重启
  12. __enter__ 和 __exit__上下文管理协议
  13. Linux内核分析——程序破解
  14. 002-linux命令-文件和目录、查看文件内容-文件和目录、查看文件内容
  15. Java学习笔记28(IO字节流)
  16. [Windows Azure] How to Manage Cloud Services
  17. qt——QT中QWidget、QDialog及QMainWindow的区别
  18. python之旅:网络基础之网络协议篇
  19. python pip 升级
  20. Opencv3.0-python: 编译报错color.cpp:7456: error: (-215) scn == 3 || scn == 4 的解决方案

热门文章

  1. For in 与For of 区别
  2. Jquery仿京东分类导航层简单实现
  3. python爬虫之爬取百度图片
  4. 九大排序算法Demo
  5. linux 下的文件目录操作之遍历目录
  6. ubuntu 下修改文件访问权限chmod 777 -R *血的教训!没事别乱开权限!用谁开谁的就行。。。最后不要用这个命令,文件操作全部改用终端
  7. 用 Eclipse 创建一个简单的web项目
  8. cocoapods导入第三方库提示RPC failed curl 18 transfer
  9. 在 JPA、Hibernate 和 Spring 中配置 Ehcache 缓存
  10. java如何调用接口方式二