提供程序实用程序库

gevent-tools的Python项目详细描述


#gtools

提供[gevent]的python库(http://www.gevent.org)工具:

*一个gevent友好的pdb
*运行greenlet的树表示



线程应用程序)。如果你想让你的greenlet在后台运行,你可以改用"gtools.pdb"。

产生(p):
对于范围(60)内的i:
p.append(i)
gevent.sleep(1)

products=[]
gevent.spawn(产生,产品)
``

要调试它,只需在控制台上键入:

```bash
$python-m gtools.pdb app.py
````


,然后单击'**n**',直到到达"task.join()"行。此时,greenlet已经在后台工作了。要确保在pdb控制台上多次键入
*products*,您将看到正在运行的greenlet填写的产品列表


``bash
>;/app.py(9)<;module>;)
->;gevent.spawn(produce,products)
(pdb)products
[0,1,2]
(pdb)产品
[0,1,2,3,4,5,6,7]
```

导入gevent
>;>;导入gtools.tree

>;>;def iloop():
…gevent.sleep(1)

>>>;def oloop():
…gtools.spawn(iloop)
…gevent.sleep(0.5)

>;>task=gtools.spawn(oloop)

>;>;>gevent.sleep()
>;>tree=gtools.tree.tree()

>;
>;初始状态
>;打印(树)

打印(树)

<;greenlet.greenlet a>;状态=运行
<;greenlet b:oloop>;状态=完成:成功
<;greenlet c:iloop>;状态=运行

>;>;内环完成后
>;>;gevent.sleep(0.6)
>;>;打印(树)

#当不再引用greenlet
>;>print(tree)
root
<;greenlet.greenlet a>;status=running
<;greenlet b:oloop>;status=dead:垃圾回收
<;greenlet c:iloop>;状态=死亡:垃圾收集

>;
>;
>;新树
>;>;print(gtools.tree.tree())
root
```


以上示例要求使用"gtools.greenlet"。

#app.py
==


import gevent


def iloop():
gevent.sleep(1)


def oloop():
gevent.spawn(iloop)
gevent.sleep(0.5)

def run():
return gevent.spawn(oloop)
`````
``python
>;>从gtools.monkey导入patch gevent
>;>patch gevent()
>;>import app
>;>import gtools.tree

>;>;应用程序=app.run()

>;>;>;睡眠只是触发内部绿叶的繁殖
>;>;gevent.sleep()
>;>;树=gtools.tree.tree()

>;>;初始状态
>;>;打印(树)
root
>;<;greenlet.greenlet a>;status=running
<;greenlet b:oloop>;status=running
<;greenlet c:iloop>;status=running
````

您仍然可以获得有关
正在运行的greenlet的有限信息(请注意,树层次结构已丢失):

`` python

>;>import app
>;>import gtools.tree
>;>task=gevent.spawn(oloop)

>;>_app=app.run()

>;睡眠只会触发内部绿叶的生成
>;>;gevent.sleep()
>;>;tree=gtools.tree.tree(all=true)

>;>;初始状态
>;>;打印(tree)
root
<;greenlet.greenlet a>;status=running

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在jetty请求日志中添加milliscond字段?   java在使用Scanner类从文件读取信息时遇到问题   为什么。类不适用于泛型类型?   SQLite插入上的java空指针异常   java能告诉我们Guava缓存是在禁用统计数据的情况下构建的吗?   java在应用程序中使用常量   java无法使用AutoIT和Selenium Webdriver在所需位置/文件夹保存图像   java如何在jtable中更新jprogress栏   java是比较给定日期和当前日期(在给定时区中没有时间段)的最佳方法   安卓代码中的java错误   java无法访问实体类中的字段   java如何在tomcat中处理三个JDBC连接池?   java无法使用Spring Security保护AngularJS页面   如何在没有TCP/IP协议栈的情况下用Java发送以太帧