我们可以在Python多处理中将父类变量共享给子类吗?

时间:2019-01-17 12:16:32

标签: python-3.x

我的代码中有两个功能。我想同时调用函数。我尝试了多线程概念,但是线程与GIL有一些问题。所以我计划采用多处理概念,它可以工作,但是与序列时间相比需要时间。并且过程将迭代除main函数之外的整个父类。有没有办法用父变量将函数作为单独的过程调用,而不是迭代整个父类?

对不起,我无法粘贴我的整个代码。在这里,我根据自己的情况粘贴了示例代码。

from flask import Flask, request, render_template,make_response
import pandas as pd
from flask_cors import CORS
import time
import queue;
from multiprocessing import Process
##Iterating when process is called
app = Flask(__name__)
CORS(app)
backpropagated_expert_data=pd.read_excel('sample.xlsx')
q = mp.Queue();
r = mp.Queue();

def detachedProcessFunction(wait_time):
    i=0
    while i<wait_time:
        i = i+1
        print("loop running %d" % i)
        #time.sleep(1)

def detachedProcessFunction1(wait_time1):
    i=0
    while i<wait_time1:
        i = i+1
        print("loop running1 %d" % i)
        #time.sleep(1)


@app.route('/start')
def start():
    p = Process(target=detachedProcessFunction, args=(15, ))
    p1 = Process(target=detachedProcessFunction1, args=(15, ))
    p.start()
    p1.start();
    return 'a'

if __name__ == '__main__':
    app.run(debug=True,threaded=True,use_reloader=False)

以上代码,启动脚本时Excel读取部分正在运行3次。如果我将excel读入Main函数,则它将运行1次,但是Processes找不到excel文件。目标参数在Process中的用途是什么,为什么它不作为流程单独调用提到的函数?

在这种情况下有人可以帮助吗?

0 个答案:

没有答案