一种伪数据马尔可夫过程间通信系统

plaitpy-ipc的Python项目详细描述


##plait py ipc

此模块是plait.py的一个外部模块,它提供了一个生态系统,可以在其中运行多个plaitpy进程,以及内部markov进程
诸如锁之类的通信功能,队列和共享变量。


follow是一个只有一个锁的生态系统。它从一个父进程
开始,这个父进程时不时地产生子进程。孩子们可以产生更多的孩子。限制是每个tick只能生成一个子节点,因为
“spawner”锁。




setup:
import plaitpy_ipc
import json


economic.add_lock(“繁殖者”,容量=1)



字段:
勾号:
lambda:economic.get_tick()

make_child:
onlyif:random.random()>;0.9和eco.spawner.grab()
lambda:economic.spawn(“spawner.yaml”)


年龄:
初始:
lambda:0
lambda:prev.age+1


过期:
仅适用于:random.random()>;0.9和this.age>;0
lambda:economics.expire()

id:
lambda:economics.get_pid()



print:
economics.gen_records():
print(json.dumps(r))


父进程和子进程共享同一文件。这样做的结果是,最外层的父进程不能过期,因为它没有在生态系统中运行。还注意到父进程不包含在
Guna记录中。BR/> BR/>生态系统使用< BR> > BR/>创建生态系统,必须存在一个父模板,它将运行
生态系统。在父模板的print方法中,它们将调用
`gen_records()`,导致生态系统中的所有进程向前勾选。

若要创建进程,请使用“spawn(template_name)”。若要使当前
进程过期,将从应过期的进程调用“expire()”。

使用此模式时父模板的字段*不会*打印,因此可以使用它们来跟踪状态信息。


`添加锁和
“添加数量”。一旦资源被声明,它就可以通过生态系统的
shared()变量获得。

任何进程都可以用grab()抓取锁。不过,没有释放函数-只要进程继续调用“grab()”,它们就会持有锁。通过不活动来释放锁需要一个勾号。


任何没有获取锁的进程都将收到false,而获取锁的进程将收到true。

它指定可以同时持有该锁的单个进程的数量。


类似于一个锁,队列隐式地将
解锁,并将一个不活动的事件释放出来。
BR/>可视化> BR/> BR/>存在一个简单的表可视化器,只要它们在进程中有一个BR/**ID*和TICK *字段,就可以监视进程。有关如何生成“viz/output.js”文件,然后在浏览器中加载“viz/viz.html”,请参见makefile的*bank*和*ecoystom*规则

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

推荐PyPI第三方库


热门话题
java CORS不允许POST请求   java Glide gradle无法识别ModelLoader   swing Java GUI 3列边框布局   无法在安卓 10上从BroadcastReceiver启动活动   java字符串初始化问题   Java LDAP使用CN获取组DN   java告诉ThreadPoolExecutor何时应该进行或不进行   java确定本机库的路径(dll/so)   java使bean在应用程序启动时运行。EJB3/websphere6。1/Java1。5.   “F obj”中的F替换为Factory时引发java Why类型不匹配错误。编译时F是什么   使用Java8获取最有效的十进制数字   java Android仅将EditText限制为整数输入   为什么在线Java IDE解决方案抛出“错误:<identifier>expected”?   泛型如何在java中用接口重写方法   如何找到尚未关闭oracle数据库连接的java代码?   java Teradata createClob:此版本不支持该函数。这是一个bug还是一个特性?   java无限循环宽度优先搜索