Greenlets间如何实现互相通信?

maiziedu · · 2936 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

  Greenlets互相通信之Event   1.为什么引入Event;   2.Event是什么;   3.编程实例。   为什么引入Event   1.windows中有Events,作为线程间同步的方法;   2.Gevent中则是Greenlet间“同步”的一种方法;   3.获得某个时机;   4.比如学校,下课铃响了,大家可以放学回家了;   5.如果纯手工,如何实现?   代码实例:   # -*- coding: utf-8 -*-   import gevent   from gevent.event import Event, AsyncResult   evt = AsyncResult()   def setter():   print ' 好好听课 '   gevent.sleep( 5 ) //持续时间为5   print ' 好的 ,下课 '   global evt   evt.set( ' hello world ' )   def waiter() : //等待下课   print ' 听课 '   global evt, is_ok   data = evt.get()   print data   print ' 哈哈 , 终于下课了 '   def main() :   gevent.joinall( [   gevent.spawn( setter )   , gevent.spawn( waiter )   , gevent.spawn( waiter)   ] )   if __name__ == ' __main__ ' :   main()   Event & AsyncEvent   1.均实现通知;   2.但AsyncEvent可以带数据。   原文链接:http://www.maiziedu.com/wiki/frame/event/

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2936 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传