一个简单的线程池库

pali的Python项目详细描述


帕利

pali是一个简单的python线程池库。它与python3和python2兼容。

pali可用于:

  • 正在创建数据管道。
  • 在消息代理中处理请求(在TCP/IP层的顶部)。
  • 模拟任何压力测试系统。
  • API测试系统。

用法

pali使用起来很简单。pali的工作池处理在pali.task.Task中具有定义良好的接口的任务。 新任务可以按如下方式从中扩展。_run方法对于定义为 线程池在内部查找并调用此函数作为任务的开始。

>>> from pali import worker, task
>>> class MyTask(task.Task):
...     def __init__(self, ident):
...         self.task_id = ident
...         self.done = False
...
...     def _run(self):
...         self.done = True

线程池本身既可以作为上下文管理器工作,也可以手动调用。下面的例子说明了它的用途 作为上下文管理器。

# create 10 tasks
>>> tasks = [MyTask(i) for i in range(10)]

# Start a Thread Pool and push tasks on it.
# Tasks are processed as and when they come.
>>> with worker.ThreadPool(3) as tpool:
...     _ = [tpool.append_task(t) for t in tasks]

# Check the status of Tasks
>>> status = [t.done for t in tasks]
>>> status
[True, True, True, True, True, True, True, True, True, True]

更多的例子可以在https://github.com/gitvipin/Pali/tree/master/tests找到,它们反映了操作系统使用线程池的不同方式。

要求

python 2.7+和python 3.4+

分享和享受!

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

推荐PyPI第三方库


热门话题
java Google Billing Library:QueryPurchaseAsync:取消购买的订阅资源未返回   java转换列表mapsturct中的单个对象   java简单算法。我做不好   包含集合的@ManyToMany映射的java JPA2持久性   在Java中序列化和反序列化对象时发生BuffereImage错误   java使用ui:param传递值并在backingbean中访问它们   java从应用程序读取配置。yml至POJO列表地图   java中在while循环外部调用文件值   java如何与来自不同类的UI交互   java如何在jTable中显示2D数组?   在Java 8中,类为什么不从接口继承默认方法?   java类。getAnnotation和getAnnotations无法正常工作   java处理pagertabstrip上的触摸事件   java GWT和struts2异常   用Java解析HTTP查询字符串   java这段代码SQL注入安全吗?