任务框架
pyworks的Python项目详细描述
pyworks是python的一个小型并发框架,自从15年前我第一次在java中使用线程以来,我就一直在使用这个概念。在那之前,我习惯了c语言和一个叫做daros的国产“os”。它有任务“抢占进程”、消息和队列。对我来说,理解one task==one thread的概念要容易得多。
没有synchronized关键字,唯一需要注意的地方是如果
使用了共享内存(这很少见)
也称为任务模式。从那时起,我们在世界各地实施了许多大型项目。这个概念对于开发人员来说很容易理解,而且通常执行得非常好。
前几天晚上,我决定尝试在
python中实现我的coworks版本。受donovan preston(@donovanpreston)在pycon 2010上关于他在python中实现task的演讲的启发,我决定自己试试。
pyworks实现了两种并发类:actor和task。actor
是一个简单的并发类,task是actor的一种特殊形式。actor
有几个简单的方法:actor、timeout、notify和observe。任务更复杂,支持受控启动顺序的状态模式和方法,
配置等。
任务的子类在它们自己的线程中运行。
任务可以通过调用self.actor(“someactor”)来获取该任务的代理。您可以调用其他任务的所有方法。方法
在队列中发送,并在另一个任务的线程中执行。
侦听器必须实现正在侦听的任务的所有输出方法。
每个任务都有一个状态(默认为self),该状态处理所有传入的
方法。这意味着任务中的状态非常容易实现。
没有任何思想或时间投入到性能中,这只是一项研究
。
只需执行以下操作即可运行测试程序:
$python pywork.py--run
works on python3
rene nejsum
rene@pylots.com
没有synchronized关键字,唯一需要注意的地方是如果
使用了共享内存(这很少见)
也称为任务模式。从那时起,我们在世界各地实施了许多大型项目。这个概念对于开发人员来说很容易理解,而且通常执行得非常好。
前几天晚上,我决定尝试在
python中实现我的coworks版本。受donovan preston(@donovanpreston)在pycon 2010上关于他在python中实现task的演讲的启发,我决定自己试试。
pyworks实现了两种并发类:actor和task。actor
是一个简单的并发类,task是actor的一种特殊形式。actor
有几个简单的方法:actor、timeout、notify和observe。任务更复杂,支持受控启动顺序的状态模式和方法,
配置等。
任务的子类在它们自己的线程中运行。
任务可以通过调用self.actor(“someactor”)来获取该任务的代理。您可以调用其他任务的所有方法。方法
在队列中发送,并在另一个任务的线程中执行。
侦听器必须实现正在侦听的任务的所有输出方法。
每个任务都有一个状态(默认为self),该状态处理所有传入的
方法。这意味着任务中的状态非常容易实现。
没有任何思想或时间投入到性能中,这只是一项研究
。
只需执行以下操作即可运行测试程序:
$python pywork.py--run
works on python3
rene nejsum
rene@pylots.com