zoukankan      html  css  js  c++  java
  • Greenlets间如何实现互相通信?

     

      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/

  • 相关阅读:
    工科物理实验()中国大学MOOC答案(已更新)
    类似jar文件使用java无法打开问题
    python9、10章
    nmap的理解与利用(初级)
    常见端口
    配置优化
    删除表操作
    万能的map
    测试
    Mapper.xml
  • 原文地址:https://www.cnblogs.com/space007/p/6253475.html
Copyright © 2011-2022 走看看