Python:由多个解释程序运行单个python脚本是否安全?

时间:2018-10-23 16:33:36

标签: python multiprocessing

我有一个长期运行的python脚本def updater(id,quantity) @order = current_order @order_item = @order.order_items.find(id) quantity = @order_item.quantity + quantity.to_i @order_item.update(quantity:quantity) @order_items = @order.order_items end 。 如果我通过终端一个接一个地调用该脚本,是否会引起任何问题:

script.py -----首次调用

python script.py -----第一次调用之前的第二次调用。

由于python是一种解释型语言,所以这两个脚本之间是否会有干扰?

或者复制脚本然后运行它更安全吗?

2 个答案:

答案 0 :(得分:2)

源代码没有任何危险;每次调用都会分别读取文件,分配自己的局部变量等。但是,如果脚本使用任何外部引用(例如写入公用文件),则可能会产生干扰。

答案 1 :(得分:2)

这完全取决于脚本的作用。

从最简单的意义上讲,答案是否定的-尽管这两个调用运行相同的代码,但是它们固有地不共享任何状态,并且可以并行运行。就像您计算机上的任何程序一样(例如,位于单独终端中的bash shell),独立调用具有其自己的处理空间。

您的脚本可能相互干扰的唯一情况是它们都使用共享资源。例如,如果script.py创建了一个名为/tmp/state.py的文件,那么显然这两个调用会冲突。