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/

  • 相关阅读:
    三 zookeeper集群搭建
    一 linux 基本操作
    linux x64 安装 node
    docker nginx/1.7.4
    搭建Portainer可视化界面
    Swarm搭建 Docker集群
    在 Centos7.4上安装docker
    js 处理json对象数据
    生产者消费者模式及其存在的问题
    多线程
  • 原文地址:https://www.cnblogs.com/space007/p/6253475.html
Copyright © 2011-2022 走看看