提供程序实用程序库

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提高机器学习Rest服务性能   java反转字符的字符串顺序,并使用构造函数将其放入LinkedList   继承为什么Java不支持在方法签名中添加“throws”?   执行DDL alter table if exists任务时发生java错误。城市   java在eclipse中使用CREATETXT并打包在jar中   java AES256与3DES 256密钥检测   具有两个相同类型字段的java JPA实体   java Webapp日志记录设置被忽略   java KeyEventDispatcher可以在一个应用程序中工作,但不能在另一个应用程序中工作   带有Swing和OpenJDK的java PinchZoom   未涉及java AspectJ注释切入点(对于任何注释类型)   java如何在FuseBAI中获取日志文件详细信息   java在Linux上将wstring转换为jstring