关于gevent.get_hub().loop.async()

原创 2013年12月05日 01:59:34


gevent.get_hub().loop.async()新建一个slot,这个slot可以放入一个回调函数,同时可以由另外一个OS线程通知gevent的loop engine运行这个回调函数。


新建一个slot:
gev_loop_async = gevent.get_hub().loop.async()

放入一个回调函数:
gev_loop_async.start(__callback_function__)

由另外一个OS线程通知:
gev_loop_async.send()  # 可在另一个OS线程调用

销毁一个slot:
gev_loop_async.stop() # 使用完后必需显式销毁,没有自动销毁机制


注:

回调函数的运行由gevent的loop engine驱动

import gevent

def _on_async_send():
    print "_on_async_send"

gev_loop_async = gevent.get_hub().loop.async()
gev_loop_async.start(_on_async_send)
gevent.sleep(0) # 启动gevent的loop engine


[gevent源码分析] 深度分析gevent运行流程

一直不太懂gevent运行流程,最近看源码略有所得,不敢独享,分享之。

Gevent源码之loop的实现

gevent之所以性能好,最主要就得益于对libev的封装,这里就来看看这部分具体的实现。。。 稍微看一下libev的用法就知道,libev将各种事件都定义为了watcher,这里包括了定时,io等等...

深度分析gevent运行流程

一直对gevent运行流程比较模糊,最近看源码略有所得,不敢独享,故分享之。 gevent是一个高性能网络库,底层是libevent,1.0版本之后是libev,核心是greenlet。geve...
  • lzl001
  • lzl001
  • 2017年07月10日 11:56
  • 136

[gevent源码分析] gevent两架马车-libev和greenlet

本篇将讨论gevent的两架马车-libev和greenlet如何协同工作的。gevent事件驱动底层使用了libev,我们先看看如何单独使用gevent中的事件循环。#coding=utf8 imp...

使用async框架GET从网络上获取数据

  • 2015年10月01日 14:27
  • 1.21MB
  • 下载

android-async-http开源项目GET方式 POST方式实现登陆

我们通过最常见的登陆案例进行介绍android-async-http开源项目中有关类的使用.希望对你学习android-async-http开源项目有所帮助. 1.在应用中引用android-a...

09_android入门_采用android-async-http开源项目的GET方式或POST方式实现登陆案例

android-async-http开源项目可以是我们轻松的获取网络数据或者向服务器发送数据,使用起来非常简单,接下来我们通过一个登陆的案例对其进行简单的使用,希望能够对你的学习有所帮助...

Android - GET请求,POST请求,数据提交,编码,HttpClient,async-http开源框架,多线程下载,断点续传,xUtils框架

Android - GET请求,POST请求,数据提交,编码,HttpClient,async-http开源框架,多线程下载,断点续传,xUtils框架...

09_android入门_采用android-async-http开源项目的GET方式或POST方式实现登陆案例

根据08_android入门_android-async-http开源项目介绍及使用方法的介绍,我们通过最常见的登陆案例进行介绍Android-async-http开源项目中有关类的使用.希望对你学习...
  • bfboys
  • bfboys
  • 2016年10月31日 17:19
  • 267
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于gevent.get_hub().loop.async()
举报原因:
原因补充:

(最多只允许输入30个字)