python - 释放另一个进程占用的资源

标签 python simpy

在 SimPy 中,如果我处理了 ab 和资源 r 并执行以下操作:

yield request, self, r #request done in process a

如何从进程b中释放资源?

yield release, a, r #release done in b (being a an instance of class a), doesn't work

我也尝试过:

r.activeQ.remove(a)

它实际上从事件队列中删除,但是它不会执行执行 yield 时执行的所有隐式步骤,结果证明这是毫无意义的。

可以吗?如果是,怎么办?

最佳答案

嗯,我的问题是进程 b 实际上处于非事件状态,因此任何 yield 调用都会失败。

我想出的解决方法是

activate(a, a.function()) #called from process b

哪里

class a(Process):
    def function(self):
        yield release, self, r
        yield passivate, self

希望这可以帮助任何遇到同样问题的人。

关于python - 释放另一个进程占用的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4701910/

相关文章:

python - 如何中断或取消 SimPy 超时事件?

python - 如何为任务优先级建模?

python - 如何检查整数小数点后的值是否为零

python - 使用 open_mfdataset 打开选定的文件

python - 机器人在行为过程中没有反应

python - 在 SimPy 中以与请求位置不同的函数释放资源

python - 如何在python pyqt5中连续更改标签颜色颜色

python - 导入日期时间与从日期时间导入日期时间

python - Pandas 箱线图

python ,SimPy : How to generate a value from a triangular probability distribution?